我有一段jquery代码来为按钮添加onClick功能。它使用另一个类ROButton来处理功能。ROButton看起来如下(某些细节被编辑,因为它们不必要地复杂):
(function($) {
$.fn.extend({
ROButton: function(options) {
var defaults = {
onClick : function() { return false; },
lockout : true,
self: this
};
options = $.extend({}, defaults, options);
return this.each(function() {
$(this).button().on("click", function() {
if (options.onClick() !== false && options.lockout) {
//Specialized lockout code
options = defaults;
}
});
});
}
});
})(jQuery);
将其附加到按钮的操作如下:
$("button.saveBtn").ROButton({
onClick: function() {
//onClick details
}
, lockout: false });
我希望能够使用另一个函数的结果作为锁定参数的值。我尝试了如下方法:
$("button.saveBtn").ROButton({
onClick: function() {
//onClick details
}
, lockout: flagFunction() });
然而,这似乎并不像预期的那样工作。不管flagFunction的返回值是什么(flagFunction本身可以正常工作,并在其他地方使用),这似乎并没有传递预期的布尔值。有没有什么办法可以做到我想做的?
谢谢你的帮助。
1条答案
按热度按时间qf9go6mv1#
检查
options.lockout
是否是一个函数,并调用它以获取值。当你调用函数时,你应该只传递一个对回调函数的引用,而不是立即调用它。