簡體   English   中英

ajax調用后jQuery無法正常工作?

[英]jquery not working after ajax call?

在這里的第一篇文章。 最近,我花了大量時間學習JavaScript。 我一直在使用jQuery庫,現在我才知道,ajax調用不適用於動態加載(無需刷新)的頁面部分。 當然,這些帖子我也需要ajax功能。 我需要幫助,以了解解決此煩惱的最佳方法。

是的,我已經閱讀並看到了jQuery FAQ中的內容,但對我來說這是含糊不清的信息,但確實提供了一些基本信息: http : //docs.jquery.com/Frequently_Asked_Questions#Why_do_my_events_stop_working_after_an_A_AJAX_request.3F

具體來說,我正在制作一個用戶個人資料頁面,其概念類似於Facebook個人資料頁面。 用戶向其他用戶發布評論,然后使用jQuery的ajax功能將新評論自動加載到頁面上。 每個評論都有諸如“ Delete”,“ Like”,“ Reply”等按鈕,這些按鈕與ajax一起很好地工作,但是對於自動加載到頁面上的評論根本不起作用...

我發現了委托()方法,據我了解有些人是如何做到這一點的。 到目前為止,我的代碼中只有以下內容:

$(document).delegate('img', 'click', function(){
alert('test'); //Stub
});

這行得通,但是問題是我已經有了編寫用於處理我的ajax調用的每個單個的jQuery方法。 我不知道如何使用委托來調用我已經編寫的jQuery代碼塊。 可能嗎? 例如,這將加載一個注釋框,在該注釋框下,用戶單擊了“答復”按鈕:

$('img.wallpost_reply').click(function(){
$(this).closest('div.wallpost').find('div.wallreply').slideDown('fast'); //Toggle the window 
$(this).closest('div.wallpost').find('textarea.wallpost_input').focus(); //Focus on the textarea
});

^^這是一個非常簡單的代碼塊,與我擁有的許多其他小代碼塊非常相似,可以完美地工作。 當用戶單擊“答復”圖像時,將調用此命令,如下所示:

<img class="wallpost_reply" style="cursor:pointer;" src="./images/reply.png" alt="Reply" />

我如何分配委托()與我已經寫過的jQuery代碼鏈接? 這有可能嗎? 如果可能,我寧願不編寫具有相同功能的全新功能。

對於任何將通過ajax綁定到DOM或在運行時添加到DOM的元素,您必須使用

http://api.jquery.com/live/

或您正在使用的代表。

http://api.jquery.com/delegate/

這些將在文檔級別綁定。

這是常規函數和“實時”函數的示例。 實時功能仍然可以在通過AJAX調用插入的HTML上使用。 順便說一句,該代碼僅允許在輸入框中輸入數字。

定期:

$('input[class="number"]').keyup(function(e)
{
if (/[^0-9\.]/g.test(this.value))
{
    // Filter non-digits from input value.
    this.value = this.value.replace(/[^0-9\.]/g, '');
}
});

生活:

$('input[class="number"]').live('keyup', function (e) {
   if (/[^0-9\.]/g.test(this.value))
{
    // Filter non-digits from input value.
    this.value = this.value.replace(/[^0-9\.]/g, '');
}
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM