jQuery在IE7中隐藏/显示方法行为

时间:2010-01-12 21:14:42

标签: javascript jquery internet-explorer-7

我遇到了jQuery hide()和show()方法的问题。以下是我正在进行的项目的片段。这段代码来自一个多页面的形式,它完整地加载,然后jQuery用于显示和隐藏各种页面。我应该提到这种技术适用于除IE7之外的所有broswer。

//Hide all pages of the form
$("#client_form div[id*='client']").hide();
//Show just the first page
$("#client_form div#client1").show();

问题不在于hide()失败,而是后续的show()没有带回所需的页面。我尝试过使用不同的方法,如slideUp()和slideDown(),我尝试过做css(“display”,“none”),以及其他各种方法来执行hide / show。

我也尝试过链接方法,从hide进行回调再显示。在IE7中似乎没有什么工作正常。

任何想法哦强大Stack Overflow蜂巢的想法?

非常感谢, 尼尔

5 个答案:

答案 0 :(得分:2)

您是否尝试过使用DIV的ID?由于它们对于页面是唯一的,因此您不需要相对于表单进行制作。

$("div[id*='client']").hide().filter('#client1').show();

请注意链接,因此它不需要回溯DOM,而只是过滤它已经找到的元素。

答案 1 :(得分:1)

仅仅是:

$("#client1").show();

不确定是不是,但试一试? ID应该是唯一的,因此不需要分层选择器。

答案 2 :(得分:0)

您是否尝试将类添加到您要隐藏的所有div中,并隐藏该类。 同时更改您的节目选择器以使用$(“#client1”)而不是那个巨大的选择器。

答案 3 :(得分:0)

你做过一个简单的测试,以确保你的第二个jQuery返回正确的对象,如果它返回任何东西?例如:

alert($("#client_form div#client1").length);

alert($("#client_form div#client1").get(0).innerHTML);

alert($("#client_form div#client1").eq(0).text());

等?

这将是我开始的第一个地方 - 然后你就会知道你是否有show()方法的问题,或者jQuery选择器的行为。

答案 4 :(得分:0)

您也可以尝试通过验证程序运行最终的HTML标记,看看是否有任何错误。 IE7比大多数其他浏览器更严格。