我正在尝试编写我的第一个jquery插件,但是我遇到了一些困难。
代码段:
这里我正在初始化我的插件并设置当MyEvent发生时应该执行的函数。
$("#myMap").MyPlugin({ myEvent: function() { alert("test"); } });
这是我的插件脚本中的功能
function setEvents(options) {
$.each(options, function(event, fn) {
if (typeof (fn) == 'function') {
if (event == "myEvent") {
$(myDiv).click(fn);
}
}
});
}
这很好用,但我想在偶数发生时从插件中检索信息。 基本上我想收到我在“setEvents”函数中设置的参数。
$("#myMap").MyPlugin({ myEvent: function(myParam) { alert(param); } });
我似乎无法想出这一点,有人能指出我正确的方向。
更新:我当前插件脚本的更完整片段
(function($) {
var defaults = {
width: 300,
height: 300,
myEvent: null
};
$.fn.myPlugin = function(options) {
var options = $.extend(defaults, options);
var myDiv = $(this);
return this.each(function() {
setEvents(options);
});
})(jQuery);
答案 0 :(得分:2)
由于插件将myEvent
事件映射到click
事件,因此您可以将参数映射传递给click(),以便最终将其传递给您的处理程序:< / p>
if (typeof(fn) == "function") {
if (event == "myEvent") {
$(myDiv).click({
param: myParam
}, fn);
}
}
然后你可以写:
$("#myMap").MyPlugin({
myEvent: function(event) {
alert(event.data.param);
}
});