2017-10-05 35 views
0

我創建了一個插件,它將創建動態元素並附加到某個容器。我想結合我的插件內針對這一元素的事件,以便它可以使用等在jQuery自定義插件中動態創建元素的事件

(function ($, window, document, undefined) { 
    $.scrollTo = function(el, options){ 
     // To avoid scope issues, use 'base' instead of 'this' 
     // to reference this class from internal events and functions. 
     var base = this; 

     // Access to jQuery and DOM versions of element 
     base.$el = $(el); 
     base.el = el; 

     base.init = function(){ 
      base.options = $.extend({},$.scrollTo.defaultOptions, options); 

      // Put your initialization code here 
     }; 

     // On click 
     base.$el.click(function (event) { 
      event.preventDefault(); 
      var span = $('<span class="myElement"></span>'); 
      span.appendTo('#main'); 
     });  

     // Run initializer 
     base.init(); 
    }; 

    $.scrollTo.defaultOptions = {}; 

    $.fn.scrollTo = function(options){ 
     return this.each(function(){ 
      (new $.scrollTo(this, options)); 
     }); 
    }; 

})(jQuery, window, document); 


//Initialize plugin 
$('.content #test').scrollTo(); 

我創建的click事件的新元素,並希望點擊功能附加到它,並且功能我裏面的插件信息想要利用插件選項。我怎麼能達到這個需要幫助?

+0

它看起來像你已經做您需要什麼'基地$ el.click()'...你有一個具體問題? –

+0

基本上我想附加單擊事件爲創建的span元素,並在其中使用插件選項。 –

+0

那麼你已經在使用'base。$ el'元素來實現這個邏輯了,所以我沒有看到你面臨的問題? –

回答

0

如果您想將事件附加到一個動態生成的元素的話,我想你應該知道,最重要的是,你不能用通常的$("")jQuery的選擇這樣做,你必須使用$(document) ,例如:

而不是使用這樣的:

$('input[type="checkbox"]') 

我們將使用此:

$(document).on("change","input[type='checkbox']",function(){}); 

處理點擊任何checkbox

來靈感來自:Event binding on dynamically created elements?

+0

那麼我如何使用它裏面的插件選項? –

+0

@GhazanfarKhan老實說,我對創建'jQuery Plugin'沒有任何意見,但我已經瞭解了動態元素,昨天的事件處理程序,並且我想與您分享這些信息,以防萬一。祝你好運 –