我有一个很大的AJAX响应,其中插入了大量的HTML。在此之后,我将不能使用任何新创建的I或类,就好像它们在加载表单时存在一样。
我研究了.live(),它可以解决我的一个问题,但不能解决另一个问题。
我基本上是想通过ID或类显示一个DIV,当单击一个链接时通过AJAX .html()插入它。
示例:
代码:
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检查隐藏的DIV相匹配的正确ID。
发布于 2011-02-24 14:24:54
除非sub_row是您在这里表示的代码之外的某个初始化变量,否则代码块应该是:
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 + '">';
发布于 2011-02-24 14:26:55
在sub_row之前使用#
function show_sub_row(sub_row) {
$('#sub_row').show('fast');
}发布于 2011-02-24 14:29:37
忽略我是个笨蛋,刚才我注意到我的ID引用中包含了#标记,这就是它不起作用的原因。
https://stackoverflow.com/questions/5101124
复制相似问题