带有.On的jQuery插件函数调用
如果我有一个jQuery插件,如下所示:带有.On的jQuery插件函数调用,jquery,dynamic,Jquery,Dynamic,如果我有一个jQuery插件,如下所示: (function($) { $.fn.somefunction = function(text, options){ ...function code goes here }; $('.selector_name').somefunction(); })(jQuery); 如何使它与.on函数绑定,以便它为动态加载的元素运行 我试过: (function($) { $.fn.somefunction
(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'
我应该如何执行此操作?如果要将函数绑定到动态加载的元素,请在添加元素时执行此操作
var $newElem = $('div');
$newElem.somefunction();
on
绑定到事件,而不是函数
$(selector).on('click', function() { ... });
jQuery中没有“on element created”方法。在添加它们时,如果需要,您需要执行绑定到它们的工作
on仅对事件有效。您也可以将其绑定到自定义事件
$('.selector_name').on("somefunction", function(){
****
});
但你必须再次触发它
$('.selector_name').trigger("somefunction");
请查看 在上使用的语法为:
.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());
});
好的-我在这里看到了我的误解。但是,这些元素是通过ajax动态重新加载的。我没有在脚本中加载这些元素。所以我仍然不清楚如何进行此操作。@daveywc-如果您通过ajax接收html并将其附加到页面中,则需要在需要时重新附加函数。请参阅我的更新答案。重新绑定应该在回调函数中。@mrtsherman-将我的函数重新附加/绑定到ajax调用成功方法中的元素起作用:即在成功方法中简单调用$('.selector_name').somefunction();希望您阅读上面链接中的文档,并理解
on
是关联事件的(包括自定义事件)添加到任何动态添加的元素。因此,当您调用trigger
时,它将触发已由on
+1关联的事件-好的,明白了。非常感谢您花时间发布一个工作示例。
$("#dataTable tbody").on("click", "tr", function(event){
alert($(this).text());
});