2011-08-07 81 views
0

我有一個按鈕'check_button'在div'check_div'。我有一個Jquery代碼,如果用戶點擊按鈕,腳本發送一個Ajax請求到服務器。之後,他用.load()重新加載div,所以他也重新加載了按鈕。問題是,然後JQuery代碼不適用於按鈕。我讀過其他Stackoverflow文章,但我是新的Ajax和JQuery中,所以我不知道如何解決我的問題。鏈接我發現了同樣的問題(我認爲):Manipulating elements after AJAX load()Ajax函數按鈕後.load()

+1

難道你還張貼你使用這樣的代碼遠? –

回答

0

如果我理解正確的話,你做2調用服務器:

  1. AJAX調用
  2. 負載

爲什麼不在1次電話中這樣做?

$.ajax({ 
    url: theurl, 
    type: 'POST', 
    data: {}, 
    dataType: 'json', 
    error: function(req, resulttype, exc) 
    { 
     // error handling 
    }, 
    success: function(data) 
    { 
     $('.check_div').html(data.html); 
    } 
    }); 

在你從服務器的響應你可以json編碼無論你想發回給客戶端。

至於你的問題:

$(element).live('click', function() { }); 

甚至更​​好.delegate()

而且所有動態添加的元素可以使用 $(容器).delegate( 'check_div','點擊',function(){ });

在代替:

$(element).click(function() { }); 

欲瞭解更多信息請查看:

http://api.jquery.com/jQuery.ajax/

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

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

+0

是的。我有一個負載和Ajax請求。我沒有在代碼中使用.html,但我使用.load()。但現場解決了這個問題。非常感謝! – Jordy

+0

@Jordy:太好了。不要忘記標記爲答案:) – PeeHaa

+0

好的,我這樣做。需要等待40秒。但是,使用html而不是加載是一個問題? – Jordy