1

我正在使用 ratchet.js(和他们的 push.js)开发一个 Web 应用程序并且有一个非常基本的问题。我的 CSS 代码将元素放置在一页中的三列中。然后,用户可以单击导航栏按钮转到下一页。进入下一页后,用户可以搜索某些内容。对于搜索,我通过表单处理它并使用 jquery 来检测何时提交表单。但是,当提交表单时,页面会重新加载,push.js 会出现故障。当发生这种情况并且用户单击返回第一页时,我的 css 无法正常运行,因为它仍然被第二页的内容 div 包围。我的问题:有没有办法在不重新加载页面的情况下提交表单(jquery 的 event.preventDefault() 不起作用)?如果没有,是否可以使用 push.js,然后在转换完成后让页面自行重新加载?

基本代码示例:第 1 页 ----

    <body>
        <div class="content">
            <div class="sliderBackground" id="sliderContainer" style="background: black; height: 40px; width: 100%;">
                <div id="left">random left</div>
                <div id="center">random center</div>
                <div id="right">random Right</div>
            </div>
        </div>
    </body>

第2页

    <body>
        <div class="content">
            <form id="search">
                <input type="search" id="searcher" placeholder="Search" style="width: 95%;">
            </form>
        </div>
    </body>

    necessary imports (jquery etc)

    <script type="text/javascript">
         $("#search").submit(function(event) {
              event.preventDefault(); // does not do anything (push.js... reloads page)
         });

    </script>

重申我的问题,用户单击链接(基本代码中未显示)以使用 push.js 转到第 2 页。在第 2 页中,他们确定,页面不应该重新加载的位置(我使用 ajax 来利用搜索查询等)。当用户返回时,左、中、右 css 不再起作用。

4

2 回答 2

0

这可能有点晚了,但我认为您的问题是通过推送加载的页面上的脚本标签没有运行。

即您在第 2 页上的代码根本没有运行。

于 2014-08-20T17:11:06.943 回答
0

如果您尝试以下操作(以 return false 结束)怎么办:

<script type="text/javascript">
     $("#search").submit(function(event) {
          event.preventDefault(); // does not do anything (push.js... reloads page)
          // your logic here

          return false;
     });

</script>
于 2014-07-14T09:20:37.687 回答