0

我有这个作为侧边栏的 JQuery UI 手风琴。我想对部分点击事件采取额外的行动,我已经根据这个SO 响应进行了这项工作:

$(".sidebar_category").click(function(event) {
  // the section contains a span and my anchor; only go when
  // the click is  over the anchor
  if (event.target.href !== undefined) {
    window.location = event.target.href;
  }
});

现在......这可行,但单击其他​​链接的方式不同,因为通过使用 turbolinks 执行了我想模拟的 AJAX 切换器。

不用说,模拟点击并不能解决问题。我期待这样的事情

<html>
  <head>
    <script type="text/javascript" src="jquery-1.3.1.js"></script>
    <script type="text/javascript" src="jquery.form.js"></script>
    <script>
        $(document).ready(function(){
          $('a').bind('click',function(event){
            event.preventDefault();
            $.get(this.href,{},function(response){ 
               $('#response').html(response)
            })  
         })
        });
    </script>
  </head>
<body>
  <li><a href="response.html"/>Response</a>
    <div id="response"></div>
</body>

但导轨风格。那么如何遵循链接 turbolinks 样式呢?

PS:我剥离的gemfile:

gem 'rails', '4.0.0'
gem 'sqlite3'
gem 'sass-rails', '~> 4.0.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'jquery-rails'
gem 'jquery-ui-sass-rails'
gem 'jquery-ui-themes'
gem 'turbolinks'
...
4

1 回答 1

1

Turbolinks 使用 JavaScript 替换新页面的 HTML 正文,而不是依赖于整个页面加载,从而使我们的应用程序在用户面前显得更快。内部的 head 标记代码不会在所有页面中加载。所以,放在body标签里面

<script>
        $(document).ready(function(){
          $('a').bind('click',function(event){
            event.preventDefault();
            $.get(this.href,{},function(response){ 
               $('#response').html(response)
            })  
         })
        });
    </script>
于 2013-10-29T07:33:59.627 回答