你如何处理jQuery插件中的点击事件?

时间:2011-09-07 17:21:38

标签: jquery jquery-plugins

如何处理插件中的点击事件?简化的描述是我希望有一个插件来检测点击,然后更新另一个元素。

使用示例:

$("#some_id").myPlugin("another_id");

示例插件:

(function($){

     $.fn.myPlugin=function(update_id){

     .click({$(update_id).html("content_upated");});

     }

})(jQuery);

我不明白如何在插件中编写.click事件。任何例子都会有所帮助。感谢。

5 个答案:

答案 0 :(得分:13)

你应该做两件事:

  1. 使用this引用应用插件的元素
  2. Namespace your events,以便以后可以轻松解除绑定
  3. 尝试以下

    (function($){
    
         $.fn.myPlugin = function(update_id) {
    
           this.bind("click.myPlugin", function () {
             $(update_id).html("content_upated");
           });
    
        };
    
    })(jQuery);
    

    您应该阅读jQuery plugin authoring上的页面,了解有关如何正确开发jQuery插件的更多信息。您缺少其他重要的细节,例如接受参数对象。

答案 1 :(得分:1)

使用this访问调用插件的对象:

(function($){
     $.fn.myPlugin=function(update_id){
         this.click( function() { $(update_id).html("content_upated"); } );
     }
})(jQuery);

请注意,您的用法需要在此示例中包含id选择器,或者您需要将其包含在Click函数中:

$("#some_id").myPlugin("#another_id");

答案 2 :(得分:0)

您可以调用.each()来迭代匹配的元素,也可以通过常规的jQuery方法进行附加。

(function($)
{
     $.fn.myPlugin = function(anotherIdentifier)
     {
          // this.click is equivalent to $(identifier).click()
          this.click(function()
          {
              // Thing to do
          });
     };
})(jQuery);

答案 3 :(得分:0)

(function($){
     $.fn.myPlugin=function(update_id){
         this.click(function(){ $(update_id).html("content_upated"); });
     }
})(jQuery);

确保update_id是有效的选择器。

答案 4 :(得分:-2)

(function($){   
     $.fn.myPlugin=function(update_id){ 
         this.click(function(){ $(update_id).html("content_upated"); });
     }
})(jQuery);

确保update_id是有效的选择器。