取消绑定/绑定单击jquery selectbox插件

Unbinding/binding click on a jquery selectbox plugin

本文关键字:绑定 selectbox 插件 jquery 单击 取消      更新时间:2024-02-16

我正在使用一个jquery插件来自定义选择框。我的问题是,我想绑定/取消绑定,点击箭头按钮,它会显示下拉列表。

我已经上传了我的小提琴-http://jsfiddle.net/P6PeV/1/因此,基本上,点击"unbind"时,它应该从组件中删除控件,点击"bind"后,它应该绑定回控件。

感谢您的帮助。

为了正确地完成它,我会稍微修改插件。这把小提琴展示了我所建议的原则:http://jsfiddle.net/P6PeV/5/

正如你所看到的,它很好地解除了绑定,不幸的是,这个插件是如何编写的,很难正确地重新绑定(我只是触发了一个显示/隐藏)。

我建议对插件进行的更改是:

replacement.find('.' + settings.className + '-moreButton').click(function(){
      if($(this_).attr('disabled') != 'disabled') { // <============= THIS LINE
        var thisMoreButton = jQuery(this);
        var otherLists = jQuery('.' + settings.className + '-list')
            .not(thisMoreButton.siblings('.' + settings.className + '-list'));
        hideList( otherLists );
        var thisList = thisMoreButton.siblings('.' + settings.className + '-list');
        if(thisList.filter(":visible").length > 0) {
            hideList( thisList );
        }else{
            showList( thisList );
        }
      } //<======== END IF

然后你就不需要解除任何绑定。。只是:

$('#unbind').click(function() {
    $("#selectbox1").attr('disabled','disabled');
})
$('#bind').click(function() {
    $("#selectbox1").removeAttr('disabled');
})