我用它来切换我的div元素,并在DOM准备就绪时隐藏它们......
$('div[class*="showhide"]').hide();
$('input:image').click( function() {
var nr = $(this).attr('id').substr(7,2);
$('div.showhide' + nr).toggle(400);
});
我已经用类showhide0;showhide1;showhide2
等动态创建了div元素......
在DIV标签内我有搜索框。
当然所有DIV都会再次隐藏,因为页面已重新加载。不幸的是...
搜索完东西后,是否有可能不再隐藏?打开页面会很好,所有的div
都被隐藏了,但是当我切换它之后......
答案 0 :(得分:1)
如果您需要一个或多个特定元素在页面重新加载时保持可见,那么您将需要做一些事情来维护请求之间的状态,然后在初始化可见状态时修改您的jQuery以利用该状态信息元素。
这可以通过多种方式完成,包括但不一定限于
答案 1 :(得分:0)
嗯,是的,如果有搜索请求,您只是不运行初始hide()
。如果在PHP级别上你知道你正在执行搜索,我只是从输出中排除那一行。
答案 2 :(得分:0)
我们在工作的地方做类似的事情。
我们选择了而不是让所有元素都隐藏类名,而是将id命名为。
所以,我们有类似的东西:
<div id="hide1" class="hide"> </div>
与此CSS一起默认隐藏所有这些div
.hide {
display: none;
}
最后,我们使用这样的东西来展示它们:
$('input:image').click( function() {
var nr = $(this).attr('id').substr(7,2);
$('#hide' + nr).toggle(400);
});
}
这是因为CSS优先规则。 toggle()/ hide()/ show()方法会覆盖hide类的样式。
至于取消隐藏部分,如果您将ID传递给您的脚本取消隐藏,您可以解析它并取消隐藏相应的div。
您可以从window.location.search
读取和处理查询字符串。不幸的是,您必须手动解析它或使用插件,例如jQuery Query String Object或jQuery URL Utils。
var id = $.query.get('unhide_id'); // This is using Query String Object
$('#' + id).show(400);