从jQuery UI Slider取消绑定幻灯片方法

时间:2013-02-18 17:59:58

标签: jquery jquery-ui slider

我希望在使用某个幻灯片功能初始化滑块后覆盖/覆盖jQuery UI滑块的slide方法。

相关代码显示在下方和JSFiddle中:

$(function() {
    var myslider = $("#myslider");
    $( myslider ).slider({
        slide: function( event, ui ) {
            console.log("sliding AAAAA");
        } //end slide function
    });//end slider definition

    //how do I unbind the original slide action?
    $(myslider).off("slide");     //doesn't work
    $(myslider).unbind("slide");  //doesn't work

    $(myslider).on("slide", function( event, ui ) {
        //I want this to be the only action fired.
        console.log("sliding BBBBB");
    });
});

在上面的示例/小提琴中,当用户滑动滑块时,两个动作仍然会触发。我怎样才能这样做只有第二个slide方法被触发,从而覆盖第一个?

谢谢!

修改

我不确定这是“正确”的做法,但似乎有效:

$(myslider).slider("option","slide","");

也许我应该把这作为我对自己问题的回答?但我认为有更好的定义/设计方式,所以我会把它打开。

1 个答案:

答案 0 :(得分:1)

这是我对自己问题的最佳答案:

$(myslider).slider("option","slide",""); //clear the slide option

如果有更好或更清洁或更“jQuery”的方式,请发布。

修改

或者,正如@FrédéricHamidi的评论建议的那样,将slide选项设置为null(而不是空字符串)。两者都将实现覆盖现有slide函数的效果。

$(myslider).slider("option","slide",null); //clear the slide option