我安排的頁面是這樣的:jQuery的投擲只有一個動作
<div class="singlePost">
<div class="post"> </div>
<div class="comments" data-idPost="310"> </div>
<div class="formComment">
<textarea data-idPost="310"></textarea>
<button data-idPost="310">Insert</button>
</div>
</div>
<div class="singlePost">
<div class="post"> </div>
<div class="comments" data-idPost="304"> </div>
<div class="formComment">
<textarea data-idPost="304"></textarea>
<button data-idPost="304">Insert</button>
</div>
</div>
我用HTML5數據屬性來區分職位和我的jQuery代碼是:
$(".formCommento button").click(function() {
idPost=$(this).attr('data-idpost');
text=$('textarea[data-idpost="'+idPost+'"]').val();
noty({text: 'I\'m going to insert '+text});
//and here i make the ajax request
return false;
});
我覺得這是不組織這種東西的方式。我有問題,當我點擊按鈕時,我有多個動作一起運行,因此多次插入相同的註釋。你建議做什麼?
您並不需要'data-idPost'來將相關元素綁定在一起。當點擊按鈕時,可以使用'$(this).prev().val()'(或'$(this).closest(「div.formComment」)。find(「textarea」).val()'如果你想更靈活),以獲得相關textarea的價值。我沒有看到任何會導致「多個操作一起運行」的代碼。 (我假設你的JS中'formCommento'的末尾的「o」只是一個錯字嗎?) – nnnnnn 2013-05-05 07:44:31
我需要data-idPost來保存帖子的ID然後發送到php代碼 – IceCube 2013-05-05 07:51:43
我的觀點是你不需要在每個相關元素上重複'data-idPost'來將它們連接在一起。把它放在元素中,只是按鈕或div,並使用DOM遍歷方法(根據我以前的評論)找出哪些元素屬於一起 - 這將使html和JS整齊。 – nnnnnn 2013-05-05 07:58:29