2011-06-22 58 views
0

我發現這個職位:Editing and deleting a newly added table row using Jquery,這似乎是我正在尋找,但我無法得到他們建議的解決方案的工作。編輯添加到jQuery表格

ajax調用後,我添加一個新的行到表。該行類似於這樣:

<tr class="classRow" bgcolor="#EFE5D3" style="font-weight: bold; font-size: 1.1em;"> 
    <td width="35px"><a class="classEditLink classAdminFormSubmit" name="33" href="#">Edit</a></td> 
    <td width="20px"><input type="checkbox" class="chkDeleteClass" name="deleteClasses[]" value="33" /></td> 
    <td>CLASS101</td> 
    <td>Class Description</td> 
</tr> 

編輯鏈接不直到頁面刷新後的工作(我假設有某種原因的事實是,它不是在DOM它的加入後,立即桌子)。所以,我需要找到一個解決方法,這導致我到上述職位。

我修改了代碼從那裏看起來像這樣:

$('a').live('click', function(e){ 
    if ($(e.target).attr('class') == 'classAdminFormSubmit') { 
     alert($(e.target).name()); 

     OpenEditDialog($(this)); 
     return false; 
    } 
}); 

警報永遠不會觸發,所以我希望這只是我的選擇需要調整。我需要將選定的錨標記傳遞給OpenEditDialog函數。

+0

我看不到類:submitAddDocsToClass中的鏈接? –

+0

謝謝,利亞姆。我改變它來檢查正確的類。不幸的是,這並沒有解決我的問題! :( – marky

+0

Liam,你不小心回答了這個問題 - 或者至少讓我回答:在改變OP中的類之後,我記得需要將類添加到將新行插入ajax的代碼中我可以編輯一個新添加的行!謝謝! – marky

回答

1
$('a').live('click', function() { 

    var $this = $(this); 

    if ($this.hasClass('classAdminFormSubmit')) { 

     alert($this.attr('name')); 

     OpenEditDialog($this); 

     return false; 

    } 

}); 
+0

不幸的是,這不起作用,何塞。我可以有其他的事情可能會阻止它的工作?是否有替代.live()? – marky

+0

我不得不採取以前的語句:我意識到我沒有將類插入到表中插入行的代碼。我補充說,對話框應該打開。 – marky

0

首先,在剛剛添加的行中放一個鏈接,然後給它一個類,假設它是editRow。 其次,使用此代碼:

$('a.editRow').live('click', function(e){ 

    alert($(e.target).name()); 

    OpenEditDialog($(this)); 
    e.preventDefault(); // this is better than return false; 
}); 
+0

我已經有一個點擊行的鏈接,你的代碼非常接近我發佈的內容... – marky

+0

:)它可能會接近,但''。 attr('class')=='aClass''不適用於你的鏈接,因爲鏈接有兩個類。我的代碼應該工作。或者,您可以使用'hasClass' – Milimetric

+0

我的歉意,Milimetric。你的代碼確實工作正常,我只是沒有將類添加到代碼中的新行中,從ajax調用中插入它 - 修復了這個問題,並且它現在可以工作。 – marky