2009-10-09 74 views
2

好吧,所以我想要做的是一个插件,返回一个jQuery数组用于回调函数。jQuery插件回调

让我们说,我有这个code``

(function($){ 
$.fn.extend({ 
    //plugin name 
    myPlugin : function(needed){ 

     var defaults = { 
      path : 'action.php', 
      source : '' 
     } 
     var needed = $.extend(defaults,needed); 

     //return 
     return this.each(function(){ 
      //it loads some pictures 
      $('#selector').load(needed.path,{'src':nedeed.source}) 

     }); 
    } 
}); 

})(jQuery的);

我想返回这些图片,并在回调函数中访问它们。这个东西

$('#another_selector').click(function(){ 
     $(this).myPlugin({'source':'path/...etc'},function(){ 
       $('img').click(function(){ 
         $(this).remove(); 
}); 
}); 
    }); 

感谢像

回答

1
(function($){ 
    $.fn.extend({ 
    //plugin name 
    myPlugin : function(needed,callback){ 

      var defaults = { 
        path : 'action.php', 
        source : '' 
      } 
      var needed = $.extend(defaults,needed); 

      //return 
      return this.each(function(){ 
        //it loads some pictures 
        $('#selector').load(needed.path,{'src':nedeed.source},callback) 

      }); 
    } 
}); 

和wheni调用插件我这样称呼它:

$('#another_selector').click(function(){ 
    $(this).myPlugin({'source':'path/...etc'},function(){ 
      $('img').click(function(){ 
        $(this).remove(); 
}); 
}); 
    }); 

选项后函数表示回调

0

我看到你想要做什么。如果你只是这么做的,你可能会考虑在你的插件中添加一个live事件监听器。

试试这个:

(function($){ 
    $.fn.extend({ 
     //plugin name 
     myPlugin : function(needed){ 
       // New 
       $('img').live('click',function() { 
        $(this).remove(); 
       }); 
       // end new 
       var defaults = { 
         path : 'action.php', 
         source : '' 
       } 
       var needed = $.extend(defaults,needed); 

       //return 
       return this.each(function(){ 
         //it loads some pictures 
         $('#selector').load(needed.path,{'src':nedeed.source}) 

       }); 
     } 
    }); 
})(jQuery); 

有了这种技术,所有的IMG的,无论什么时候,他们被添加到DOM点击时会被隐藏。那是在插件被调用之后,当然。

+0

好了,我的插件是复杂多了,但我只是简化它更全面。我会尝试你所说的话,如果你的建议适合我,我会告诉你。感谢 – kmunky 2009-10-09 18:59:58

+0

在mouseOver上我想要悬浮动作(出现/消失编辑栏)的每个图像。在这种情况下,我应该怎么做?像这样? $( 'IMG')。住( '的mouseenter',函数(){$ (这).hover( 函数(){弹出编辑栏}, 功能(){编辑栏被隐藏} ); }); – kmunky 2009-10-09 19:05:38