2010-02-27 56 views
1

我有一個簡單的註釋部分,用戶可以在其中發佈評論到其他用戶的帖子 - 它的作品非常符合facebook牆的風格,用戶可以在牆上寫東西,其他人可以對此發表評論。Jquery - 事件不適用於新創建的元素

所以我有這種形式,用戶可以輸入任何內容,當他提交 - 這些信息被插入到數據庫中,並顯示在使用Jquery的表單下的同一頁面上。

現在,每個帖子旁邊都有註釋鏈接。所以當有人點擊評論鏈接時,會出現一個小小的textarea框,用戶可以在其中輸入內容並提交。

除了新創建的元素上的註釋鏈接沒有打開文本框區域之外,一切都很適合以前發佈的項目。

搜索後,我遇到了我實現的Livequery插件 - 但這似乎不適用於我 - 看起來我做錯了什麼。

這是我以前有代碼:我改變了這種使用的liveQuery


    $(".comment_button").click(function(){       
       var element = $(this); 
       var I = element.attr("id"); 
       //alert("in="+I);; 
       $("#slidepanel"+I).slideToggle(300); 
       $(this).toggleClass("active"); 
       return false; 
      }); 


    $('.comment_button').livequery('click',function(event) {     
       var element = $(this); 
       var I = element.attr("id"); 
       //alert("in="+I);; 
       $("#slidepanel"+I).slideToggle(300); 
       $(this).toggleClass("active"); 
       return false; 
      }); 

這是鏈接的評論

<a id="<?php echo $data['shopping_id']?>" class="comment_button" href="<?php echo $data['shopping_id']?>">Comment</a> 

謝謝您提示

回答

2

你不需要livequery,只需要live。將livequery替換爲live,它應該可以正常工作。

+0

謝謝Skilldrick - 我試着用現場 - 它還沒有做任何事情 - 事件被稱爲 - 因爲警報顯示並顯示正確的ID - 但$(「#slidepanel」+ I).slideToggle( 300);似乎並沒有工作 謝謝 – Gublooo 2010-02-27 13:02:43

+1

什麼是顯示的ID?我認爲這個問題可能出現在'$(「#slidepanel」+ I)' - 看起來你可能需要一個空間。 – Skilldrick 2010-02-27 13:14:01

+0

顯示的ID是發佈的最後一條評論的ID。 幻燈片代碼很好,因爲它的工作原理 - 當您刷新頁面並單擊前一篇文章的「評論」鏈接。 它不適用於新創建的元素。我們是否需要重新綁定滑動面板 – Gublooo 2010-02-27 13:32:08

相關問題