[英]How to bind an event within dynamically loaded content on a click event?
我的html內有一個div,其ID為pageContent
。 當用戶單擊各種按鈕時,它將加載適當的內容。 當用戶單擊它加載的javaQuestions按鈕時,將javaQuestions.html
插入div就可以了。 但是,在javaQuestions.html
內部,我有一個可折疊的列表,並且在沒有用戶單擊TWICE的情況下,我想不出一種方法來“綁定” li折疊/展開。 現在我擁有的是:
$("#pageContent").on('click', 'li', function (){
$('.collapsible').collapsible();
});
所以我想會發生什么,首先用戶單擊按鈕,然后加載內容。 然后,用戶單擊任意li,它啟用“ collapsible()”功能,但不會取消折疊/折疊內容。 只有當用戶第二次單擊時,它才能正常工作。 我嘗試添加$('.collapsible').collapsible();
加載javaQuestions.html
內容的事件,但它不會執行任何操作。 有點障礙,有什么想法嗎?
編輯:這是加載內容的代碼:
$("#pageContent").on('click', '#javaQuestions', function (e) {
fadeIn("#pageContent", "../java-questions/javaQuestions.html", 50);
fadeIn("#commentsContent", "../comments/comment-section.html", 500);
});
我也很想知道一旦弄清楚它如何工作。 但是正如您所看到的,上面的函數加載了javaquestions.html,而且我似乎找不到一種方法也可以將'li'綁定為可折疊的。
您是否嘗試過使用jQuery bind方法? 您可以將處理程序綁定到例如body
,然后您不必關心在其后加載和附加處理程序。
更新:也許這會有所幫助:
$(document).ready(function() {
$("body").on('click', '#pageContent li', function (){
$('.collapsible').collapsible();
});
});
使用此文檔,因為它是動態加載的
$(document).on("click","li #pageContent",function(){
$('.collapsible').collapsible();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.