大佬教程收集整理的这篇文章主要介绍了jQuery:调用后更改插件选项,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
$("#popup").dialog(options);
我用这个:
$("#popup").dialogPlugin(options);
而dialogPlugin将调用.dialog(选项)(做完一些事后).
var originalCloseFn = options.close; options.close = function() { //my own stuff. originalCloseFn(); };
该插件工作得很好,但经过一段时间使用它后,我意识到我无法从插件外部更改对话框功能,如下所示:
$("#popup").dialog("option","close",newFunctionOnClosE);
if (options == "option") { if (val == undefined) return _this.dialog("option",Name); else return _this.dialog("option",name,val); }
现在我需要更改此代码的第五行以实际更改我的插件的选项,而不是jquery-ui. (.dialogPlugin函数的选项,而不是.dialog的选项).我真的不知道我该怎么做.有什么想法吗?
编辑
我知道这个问题不是很清楚,我的英语不好让我不再解释自己,所以我做了一个小问题example.
我想要的是在第七行(返回$(this).dialog(“option”,val);)而不是修改(相当于optionsForJquery.closE)修改options.close.这样我就会避免破坏插件的行为.
HTML:
<div id="popup">I'm a popup</div>
JS:
(function ($) { $.fn.dialogPlugin = function (options,val) { var // setter function close fnClose = null,// function when close fnMyClose = function() { alert("This is plugin's close behavior"); if (fnClosE) fnClose(); }; if (options == "option") { if (name == "close" && $.isFunction(val)) { fnClose = val; val = fnMyClose; } } else { if (options.closE) fnClose = options.close; options.close = fnMyClose; } return (Name) ? $(this).dialog(options,val) //if var == 'undefined'is equal to not send parameters : $(this).dialog(options); }; })(jQuery); $("#popup").dialogPlugin({ close: function() { alert("This is user's first close behavior"); } }); $("#popup").dialogPlugin("option",function() { alert("This is user's second close behavior"); });
编辑
或更简单优雅:
(function($){ var dialog_close = $.ui.dialog.prototype.close; $.ui.dialog.prototype.close = function() { var self = this; alert("This is plugin's close behavior"); dialog_close.apply(this,arguments); }; })(jQuery);
以上是大佬教程为你收集整理的jQuery:调用后更改插件选项全部内容,希望文章能够帮你解决jQuery:调用后更改插件选项所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。