带有.On的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

如果我有一个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'


我应该如何执行此操作?

如果要将函数绑定到动态加载的元素,请在添加元素时执行此操作

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());
});