我在Windows中使用Drupal 7。我创建了一个视图,显示由ANDing四个公开过滤器动态填充的结果(默认情况下设置为ANY)。
在视图中,我想隐藏过滤器并默认显示所有结果。点击切换按钮,我想显示过滤器。更改任何过滤器参数将触发对数据库的查询,并根据新的过滤器参数重新加载包含结果的页面。重新加载时我想显示过滤器。
我有一个包含在容器div(.view-filters)和表单(#views-exposed-form-blog-styles-page-2)中的过滤器。我尝试在点击一个div(#toggle-faculty-filter)作为按钮设置时切换显示。
点击过滤结果按钮后,我切换其显示属性。过滤器以表单形式包装,每次过滤器值更改时,表单都会提交,从而触发查询到数据库。页面重新加载并显示筛选结果。但是div仍然隐藏着。
EITHER :我可以检测到表单提交事件并将display属性设置为block。这样,当页面重新加载新值时,我可以看到过滤器。
OR :我可以使用jquery为ready事件中的div设置display:none。使用按钮切换显示。在页面中,我可以检测到我是第一次来到页面还是在触发表单提交事件后重新加载。如果是后者,请将div的display属性设置为block。
问题是尽管我的第一种方法,我无法在重新加载时看到过滤器。我不知道如何检测我到达当前页面的方式(通过表单提交/重新加载或从其他页面重定向)
CSS: .page-faculty .view-filters { display: none; }
我默认隐藏了过滤器的容器div。
JQUERY:
$(document).ready(function () {
$("#toggle-faculty-filter").click(function () {
$(".page-faculty .view-filters").toggle();
});
$('#views-exposed-form-blog-styles-page-2').submit(function () {
$('#view-filters').show();
});
});
请帮忙......