【发布时间】:2009-10-26 21:43:56
【问题描述】:
我有一组 DOM 元素,我只想在用户选中控制复选框时才显示这些元素。所有这些项目都有一个共同的类并且最初是隐藏的:
.spec { display:none; }
在复选框的点击处理程序中,我最初有以下内容, 这对现有元素效果很好。但是,表格是通过 AJAX 动态生成的,当使用“spec”类添加新元素时,选中复选框时它们不会显示。
// Basic jQuery show/hide
if (btn.checked)
$('.spec').show();
else
$('.spec').hide();
因为在我的例子中这是在同一个 JS 模块中,我总是可以在添加到 DOM 之后重新执行这段代码。但总的来说,这可能不是真的,所以我的问题是:
解决此问题的常规 jQuery 方法是什么?
由于 jQuery 显示/隐藏函数改变了 element.style 而不是 样式对象本身,我最终编写了一个 jQuery 插件来改变 样式表,效果很好,但似乎有点过头了,因此是个问题。
var nval = btn.checked ? '' : 'none';
$.styleSheet('.spec', 'display', nval );
【问题讨论】:
-
这是我写完插件后发现的一个页面:hunlock.com/blogs/TotallyPwnCSSwithJavascript
标签: javascript jquery dom dynamic