2016-08-02 40 views
0

我有這樣一段代碼:JQuery的/上()和不存在元件在功能

$(".tabs__nav[data-tab-id='2'").on('click', function (e) { 
    $(this).off(); 
    var projects = []; 
    $('.project').each(function() { 
     var detail = new _detailMozaik2.default($(this)); 
     detail.init(); 
     projects.push(detail); 
    }); 
}); 

「的.project」項是主要的問題,導致點擊選項卡後這些項目出現 - •奈特片斷(AJAX ) - jQuery中的on()函數之前,項目不存在。

如何編輯代碼或jQuery函數必須使用哪些? 謝謝

+2

啓動JQuery的有錯字在'$( 「tabs__nav [數據標籤-ID = '2'」)'。您未關閉']' – brk

+0

閱讀[__'Event delegation'__](https://learn.jquery.com/events/event-delegation/) – Rayon

+0

是否拋出了任何語法錯誤?你在代碼中的語法錯誤在第1行 –

回答

0

問題是,來自其他選項卡的項目仍然apear,因爲他們有.project類無論如何。

與您的目標標籤

$(e.target).find('.project').each(function() { 
 
    var detail = new _detailMozaik2.default($(this)); 
 
    detail.init(); 
 
    projects.push(detail); 
 
});

+0

那不行。在DOM中存在.project項(這些項不通過事件處理程序)之前.on()函數inits(以及callbeck)...如何在'click'事件之後初始化.on()回調函數? –