2017-03-09 39 views
0

我有加載內容使用AJAX。需要調用ajax加載的內容。我也嘗試了一些代碼,但沒有運氣與此。單擊AJAX加載的內容和動態ID事件

jQuery(document).ready(function(){ 
     var itemId = '<?php echo $_item->getId(); ?>'; 

     jQuery("#cart-sidebar").on("click", '.increment_qty_'+itemId, function(event) { 
      console.log("work"); 
     }); 

     jQuery("#cart-sidebar").on("click", '.increment_qty_<?php echo $_item->getId(); ?>', function(event) { 
      console.log("work"); 
     }); 
}); 
+0

你有什麼問題?你在哪裏叫阿賈克斯? – user7417866

+0

當頁面第一次加載時,你會得到'itemId',它不是來自AJAX。 AJAX是否真的用'itemId'返回元素,還是動態改變? – Barmar

+0

是的,我每次都得到itemId,但這個點擊事件js也加載到ajax成功 –

回答

0

嘗試綁定的事件記錄,這確保了無論何時元素在DOM發現它可以發射

jQuery(document).ready(function(){ 
     var itemId = '<?php echo $_item->getId(); ?>'; 

      jQuery(document).on("#cart-sidebar","click", '.increment_qty_'+itemId, function(event) { 
      console.log("work"); 
     }); 

     jQuery(document).on("#cart-sidebar","click", '.increment_qty_<?php echo $_item->getId(); ?>', function(event) { 
      console.log("work"); 
     }); 
}); 
+0

我已經嘗試,但沒有運氣 –

+0

你可以發佈你的一個小的HTML嗎? –

0

有2種方式將事件處理程序附加到阿賈克斯加載的內容。

  1. 附上事件的Ajax請求的完成回調。 (參考:jQuery Ajax

    $.ajax({ 
        url: "xyz.php", 
    }) 
    .done(function(content) { 
        $("#cart-sidebar").on("click", '.increment_qty_'+itemId, function(event) { 
          console.log("work"); 
        }); 
    }); 
    
  2. 使用Event Delegate。這將允許您將事件監聽器附加到元素,即使在將來

+0

不可能設置1個選項,因爲js文件和ajax是兩個不同的文件 –

+0

和第二選項不工作 –

0

只是不喜歡:

jQuery(document).ready(function(){ 
     var itemId = '<?php echo $_item->getId(); ?>'; 

     jQuery(document).on("click", '.increment_qty_'+itemId, function(event) { 
      console.log("work"); 
     }); 


}); 
+0

我已經嘗試但不爲我工作 –

+0

@Ajaypatel使用文檔而不是$(「#cart-sidebar」)。 (「點擊」,正如我在我的答案中提到的。還請提到你的動態添加html –

+0

的方式我已經嘗試過所有文檔,活,上,委託,但不工作,因爲js加載在ajax上 –