我有一个 JQuery 插件,想要为它添加一些事件。 有任何帮助、提示或教程吗?
我有一个 JQuery 插件,想要为它添加一些事件。 有任何帮助、提示或教程吗?
如果你有某种关闭弹出窗口的按钮,并且你需要在关闭后触发一个函数,那么我的理解是这样的。
(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');
}
});
如果需要的话,你也可以在trigger函数内部传递数据。$("#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();
});
}
任何使用$.bind()
附加到事件的元素都会被通知事件已被触发并执行其代码。
示例:
$(document).trigger('my.event');
jQuery支持 "命名空间" 事件,因此您可以将事件命名为 mypluginName.eventName
,以确保没有其他插件干扰您的事件;)
简单而清晰,但要小心,文档中指出:
虽然 .trigger() 模拟了一个事件激活,包括合成的事件对象,但它并不能完全复制自然发生的事件。
祝您有美好的一天
$("#someElement").on("someSpecialEvent", function(event) {
});
当某个元素发生特定事件时,执行一个函数。