Javascript 向Jquery插件添加事件
我有一个JQuery插件,我想给它添加一些事件。Javascript 向Jquery插件添加事件,javascript,jquery,Javascript,Jquery,我有一个JQuery插件,我想给它添加一些事件。 有任何帮助、提示或教程吗?我理解正确,如果您有某种按钮可以关闭弹出窗口,并且需要关闭后触发的功能 (function($) { $.fn.somePlugin = function(options) { // do some stuff with popup $('#closeButton').click(function(e) { //close popup if (options.onAfterCl
有任何帮助、提示或教程吗?我理解正确,如果您有某种按钮可以关闭弹出窗口,并且需要关闭后触发的功能
(function($) {
$.fn.somePlugin = function(options) {
// do some stuff with popup
$('#closeButton').click(function(e) {
//close popup
if (options.onAfterClose !== undefined) {
options.onAfterClose(e);
}
});
};
})(jQuery);
它只是从单击事件传递事件
$('#someId').somePlugin({
onAfterClose: function(e) {
alert('after close');
}
});
使用$.bind()
附加到事件的任何元素都将被通知事件已触发并执行其代码
例如:
$(document).trigger('my.event');
jQuery支持“名称空间”事件,因此您可以将事件命名为类似于mypluginName.eventName
的名称,以确保没有其他插件干扰您的事件;)
简单、干净,但要小心,文档中指出:
尽管.trigger()模拟了一个事件
激活,包括
合成的事件对象,它没有
完美复制
自然发生的事件
美好的一天在jquery插件中,首先要做的是在插件代码中的某个地方触发自定义事件: $(“#someElement”).trigger(“someSpecialEvent”) 如果需要,还可以在触发器函数内部传递数据
$("#someElement").trigger("someSpecialEvent", "this does not need to be a string");
接下来,在插件代码中的其他地方为自定义事件创建事件处理程序:
$("#someElement").bind("someSpecialEvent", function(event, data) {
//If you had passed anything in your trigger function, you can grab it using the second parameter in the callback function.
});
然后,您可以允许用户通过如下选项传递回调函数:
$("#sampleElement").myPlugin({
someEvent: function() {
//user logic
}
});
最后,在插件代码中,您可以通过几种不同的方式调用用户的函数。例如:
$.fn.samplePlugin = function(options) {
options = $.extend({}, $.fn.samplePlugin.options, options);
$("sampleElement").bind("specialEvent", function() {
options.someEvent.call();
});
}
嗯,什么插件?如果我们不知道它是关于什么的,我们就无法回答…@Anriëtte Combrink:这是一个弹出式插件,我想在它关闭后做点什么。我有一个类似的插件结构,只是我将“e”设置为具有某些值,这些值应该作为参数传递,但它总是显示为null。所以没有参数!有什么想法吗?设法整理好了。这与在Javascript中使用.call有关,其中传递的第一个参数应该是'this',就像在onChange.call(this,然后是parameters)中一样,这正是我所寻找的,对于理解这个问题做得很好!还应检查选项是否未定义