1

在使用某个滑动功能初始化滑块后,我想覆盖/覆盖 jQuery UI 滑块的滑动方法。

相关代码如下所示,在此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","");

也许我应该输入这个作为我自己问题的答案?但我认为有更好的定义/设计的方式,所以我会保持开放。

4

1 回答 1

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
于 2013-02-18T18:38:24.987 回答