我希望在使用某个幻灯片功能初始化滑块后覆盖/覆盖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","");
也许我应该把这作为我对自己问题的回答?但我认为有更好的定义/设计方式,所以我会把它打开。
答案 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