【发布时间】:2012-05-07 16:32:24
【问题描述】:
我有 treeview 脚本,其中一部分看起来像:
root.find("." + classControl).each(function () {
$(this).bind('click', function () {
if ($(this).text() == "-") {
$(this).text("+");
}
else {
$(this).text("-");
}
$(this).parentsUntil("li").parent().children("ul").toggle();
});
});
它应该找到所有折叠/显示按钮并将它们绑定到适当的功能。它适用于 FF、Chrome、IE 8,但不适用于 IE7。当我单击按钮时,它会从 + 变为 - 或相反,但它也会将所有其他按钮设置为空文本。
我认为问题一定出在 this 选择器上,因为如果我只绑定简单的 alert(),它甚至在 IE7 中也可以工作
【问题讨论】:
-
您是否考虑过使用 $this.on 而不是 $this.bind。以下是差异的细分:elijahmanor.com/2012/02/…。如果您的选择器仍然不正常,这可能无济于事。
-
这是您当前代码的一个小优化,尽管我没有看到任何会导致您看到的 IE7 问题的东西。 jsfiddle.net/Y8Q7p/1 它也使用事件委托,因为您的所有控件都有一个共同的根。
-
@KevinB:令人印象深刻的优化。
-
谢谢,IE 很奇怪,因为当按钮消失并且我调整窗口大小时,它们又出现了。没看懂
-
你能为此创建一个 jsfiddle 吗?它可能实际上是一个 css 问题而不是 jquery。
标签: javascript jquery