我正在使用JQUery treeview插件來顯示我的數據作爲樹結構。 問題是我從JSON響應對象動態生成我的HTML。 這不會按預期工作。這些元素沒有獲得點擊事件的註冊。jQuery註冊click動態HTML樹插件事件
如果我對動態HTML進行硬編碼,我可以按預期看到結果。我調試並瞭解JQuery爲現有的HTML元素註冊點擊事件,但不是動態形成的元素。請讓我知道如何註冊點擊事件。
function show(jsonResp) {
//Parsing the JSON response and building HTML on the fly.
$red = '';
for (var i = 0; i < treeElements.length; i++) {
$red = $red + treeElements[i];
}
$("#user-records").append($red);
$("#red").treeview({
animated: "fast",
collapsed: true,
unique: true,
persist: "cookie",
toggle: function() {
window.console && console.log("%o was toggled", this);
}
});
}
此樹視圖代碼正在調用函數以根據用戶單擊事件展開和摺疊。所有這些事件都得到登記treeview.js
this.find("div." + CLASSES.hitarea).click(toggler);
我在Chrome調試,並檢查了我的新div的越來越與點擊事件註冊的。但是當我點擊時沒有任何事情發生。
P.S:如果我複製生成的HTML元素的控制檯日誌,並創建一個不同的頁面,它可以很好地工作。唯一的問題是動態添加HTML代碼。我無法在這裏註冊這個新添加的動態HTML代碼的點擊事件。
您是否在使用['.on'](http://api.jquery.com/on)將該事件委託給新內容,請添加您正在使用的代碼,以便我們可以看到問題的可能性 –
@ PatrickEvans請看看我添加的代碼。 –
爲什麼用'$'加前綴(一些)你的變量? JavaScript不是PHP。 – ThiefMaster