jquery
  • html
  • ajax
  • 2011-02-24 69 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

    相关问题