我已經得到了工作,像這樣的委託聲明:試圖添加層次約束委託()
$("body").delegate("tr[type='option']",'mouseenter',function(){
的問題是,它抓住從表我不想元素。所以,我想:
$("body").delegate("table[class='ms-MenuUI'] > tr[type='option']",'mouseenter',function(){
這是不是在所有工作(雖然我沒有得到任何控制檯錯誤)。只是想知道我怎樣才能收緊它,所以它只是從我想要的特定表中獲取表格行。
注意:該表在頁面加載時不存在於DOM中,並且在文檔準備好後動態創建/銷燬,因此需要委託開始。
編輯: 根據我下面的評論,我使用[]是因爲父項的屬性是可變的,我的理解是它們應該與短屬性(即'。')互換使用。動態代碼的示例爲:
$('body').delegate('table[' + parentAttribType + "='" + parentAttribValue + "'] > tr[" + rowAttrbType + "='" + rowAttribValue + "']"), 'mouseenter', function(){
謝謝!
@John使用'live'永遠不會更好。 (1)它具有可怕的語法,(2)在進行授權時需要額外的選擇器。 – lonesomeday 2010-10-25 20:22:54
這看起來是正確的解決方案。我不同意這個委託*總是*比現場好 - 這是一個設計約束和解決方案需要imo的問題... – patrickgamer 2010-10-25 20:43:53
謝謝約翰,我要繼續前進() – patrickgamer 2010-10-25 20:45:04