2011-08-13 40 views
1

我有一個表,我想:對於每一次點擊表中的項目,這個項目將被添加到另一個表。這是我的代碼:event.target在jquery

$("#listResult table td").click(function(e){ 
    $("#addGroupMemberOfAdd").click(function(){ 
     alert("Add to List Member"); 
     $("#listMember table").append(
      '<tr><td style="padding-left: 5px;">'+$(e.target).attr('rel')+'</td></tr>'); 
     return false; 
    }) 
    return false; 
}) 

但是,中遇到一個問題:如果一個表有3個項目,我對物品1點擊,物品1被加入到其他表,但是當我點擊項目2,物品1被添加到再次將其他表和item2添加到此表中。如何解決它?

+0

你可以安排一個[jsFiddle](http://jsfiddle.net)來演示你的問題嗎? –

+0

爲什麼你嵌套點擊處理程序?當你點擊一個項目時,你所做的只是將一個點擊處理程序附加到另一個項目。 –

+0

@Ronald我會問同樣的事情。我不明白雙嵌套處理程序。正如Rikudo提到的,你可以將這段代碼添加到jsfiddle中,並解釋你想要做什麼。您希望能夠將表格項從table1移動到table2,反之亦然? – Matt

回答

0

只是一個猜測:當第二個事件觸發時,事件對象(因此它的目標)可能已經改變。

(我讀的代碼的方法:單擊一個TD的時候,第二次點擊(例如,在OK按鈕)移動它的內容或立即做第二個事件火災。?)我想提出一個不同的

解決方案:第一次點擊設置一個變量以指示「活動」td,第二次點擊訪問此變量以查看哪個td移動/添加。通過這種方式,您可以避免在每次點擊td時生成這些匿名函數(閉包)。