如果我有一个jQuery插件,如下所示:
(function($)
{
$.fn.somefunction = function(text, options){
...function code goes here
};
$('.selector_name').somefunction();
})(jQuery);
如何使它与.on函数绑定,以便它为动态加载的元素运行。
我试过了:
(function($)
{
$.fn.somefunction = function(text, options){
...function code goes here
};
$('.selector_name').on.somefunction();
})(jQuery);
但是这给了我一个JScript运行时错误:“对象不支持属性或方法'somefunction'。
我该怎么做?
答案 0 :(得分:2)
on仅对事件有效。你也可以将它绑定到自定义事件。
$('.selector_name').on("somefunction", function(){
****
});
但你必须再次触发
$('.selector_name').trigger("somefunction");
答案 1 :(得分:1)
如果要将函数绑定到动态加载的元素,请在添加它们时执行。
var $newElem = $('div');
$newElem.somefunction();
on
与事件绑定,而不是与函数绑定。
$(selector).on('click', function() { ... });
jQuery中没有'on elements created'方法。当您添加它们时,如果需要,您将需要完成绑定它们的工作。
//load some content via ajax
$('div').load('foo.html');
//rebind your function if need be
$('div').children('span').somefunction();
答案 2 :(得分:0)
查看jQuery documentation for .on。
使用on的语法是:
.on( events [, selector] [, data], handler(eventObject) )
举个例子,它就像这样:
$("#dataTable tbody tr").on("click", function(event){
alert($(this).text());
});
或者,如果您想使用选择器,对于直播活动,on会“观察”所选的tr
(第二个参数)以进行更改:
$("#dataTable tbody").on("click", "tr", function(event){
alert($(this).text());
});