jquery
  • html
  • ajax
  • 2011-02-24 39 views 1 likes 
    1

    我有一個大的AJAX響應,它插入了大量的HTML。在此之後,我無法使用任何新創建的ID或類,就好像它們在表單加載時存在一樣。AJAX調用後無法使用DOM元素

    我已經看過.live(),它解決了我的問題之一,而不是其他問題。

    我基本上想通過點擊鏈接時通過AJAX .html()插入的ID或類來顯示DIV。

    例子:

    CODE:

    html_out = "<div class='span-1'><a href='#' onClick='show_sub_row(\"#sub_row" + id + "\"); return false;'>[ + ]</a></div>"; 
    html_out += '<div class="hidden_sub_row prepend-2" style="display: none;" id="#sub_row' + id + '">'; 
    html_out += 'Content'; 
    html_out += '</div>'; 
    $('#search_results').html(html_out); 
    

    然後在創建HTML後,我嘗試:

    function show_sub_row(sub_row) { 
    $(sub_row).show('fast'); 
    } 
    

    我知道它是引用正確的ID,因爲我可以做一個警報( sub_row),並顯示與使用FireBug顯示的ID相匹配的正確ID來檢查隱藏的DIV。

    回答

    3

    除非sub_row是一個初始化的VAR的地方,你在這裏所代表的代碼外,該塊應該是:

    function show_sub_row(sub_row) { 
    $('#sub_row').show('fast'); 
    } 
    

    另外,sub_row您的實際HTML標識中包含#字符,這常常是更很難找出真正的問題。我將其修改爲:

    html_out += '<div class="hidden_sub_row prepend-2" style="display: none;" id="sub_row' + id + '">';

    +0

    是的,我上面的行中#是問題..直到現在我才注意到它。刪除#所有東西都在工作..其中有一天,我沒有看到它幾個小時。謝謝! – bobcat 2011-02-24 06:31:06

    +0

    完全沒問題......接受? :) – philwinkle 2011-02-24 06:32:05

    1

    使用# sub_row前

    function show_sub_row(sub_row) { 
    $('#sub_row').show('fast'); 
    } 
    
    1

    否認我是一個白癡,剛纔注意到,我包含在我的ID號和#號這是爲什麼呢WASN沒有工作。

    +0

    你不需要發佈這個答案。你對philwinkle的回答也有類似的評論,我認爲這就是你需要做的。 – 2011-02-24 06:46:21

    相關問題