我想從一個jQuery插件內部傳遞一個布爾參數回調,但參數總是未定義。jQuery的插件,布爾回調參數
每次單擊鏈接時,onSwitch回調參數應在true和false之間切換。使用調試器,我可以看到傳遞給回調函數的值被正確地定義爲true或false,但在回調實現中它變成未定義的。
我試圖尋找其他幾個類似的問題,如thisthis 和this但似乎無法得到這個工作。
這是我的插件定義:
(function ($) {
$.fn.switcherButton = function (options) {
// Set the default options
var settings = $.extend({},$.fn.switcherButton.defaults, options);
this.click(function() {
$.fn.switcherButton.switched = !$.fn.switcherButton.switched;
settings.onSwitch.call($.fn.switcherButton.switched);
});
return this;
};
// Plugin defaults – added as a property on our plugin function.
$.fn.switcherButton.defaults = {
onSwitch: function() {}
};
$.fn.switcherButton.switched = false;
}(jQuery));
HTML:
<a id="switchTest" href="#">switch</a>
插件初始化:
$("#switchTest").switcherButton({
onSwitch: function(switched){
if(typeof switched === "undefined")
alert("callback param = undefined");
else
if(switched)
alert("callback param = true");
else
alert("callback param = false");
}
});
我創建了一個問題here的jsfiddle。
檢查[這](http://jsfiddle.net/deepakb/zs3yt0t9/1/)。 – deepakb