jQueryAjax并不总是向服务器发送请求

jQueryAjax并不总是向服务器发送请求,jquery,ruby-on-rails,ruby,ajax,Jquery,Ruby On Rails,Ruby,Ajax,因此,我有一个链接,它应该在每次单击时发送一个AJAX请求: <a href="/application/start_game?human_is_first=true" data-remote="true">Yes</a> 但是,第一次尝试并不总是有效。有时候,它只有在其他AJAX链接被点击后才能工作,而这些链接在应该发送请求时也不会发送请求 我知道该链接正在发送请求,因为当我单击该链接时,服务器控制台输出不会改变。没有错误,什么都没有 我正在使用和jQuery 1.4

因此,我有一个链接,它应该在每次单击时发送一个AJAX请求:

<a href="/application/start_game?human_is_first=true" data-remote="true">Yes</a>
但是,第一次尝试并不总是有效。有时候,它只有在其他AJAX链接被点击后才能工作,而这些链接在应该发送请求时也不会发送请求

我知道该链接正在发送请求,因为当我单击该链接时,服务器控制台输出不会改变。没有错误,什么都没有

我正在使用和jQuery 1.4.4


实时应用程序向您展示正在发生的事情:

我建议您将firebug与firequery Firefox插件一起使用。 然后可以看到绑定的jquery事件和从浏览器发出的ajax请求。 这通常有助于理解为什么有些东西不起作用。
在firebug控制台中检查您的ajax请求是否已正确发送,如果未正确发送,请检查链接上的单击事件是否已绑定。

我建议您将firebug与firequery Firefox插件一起使用。 然后可以看到绑定的jquery事件和从浏览器发出的ajax请求。 这通常有助于理解为什么有些东西不起作用。
在firebug控制台中检查您的ajax请求是否已正确发送,如果未正确发送,请检查链接上的单击事件是否已绑定。

一个常见问题是javascript没有及时加载,或者在错误的时间加载,即在dom准备就绪之前加载。JS错误日志中是否有错误?

一个常见的问题是javascript没有及时加载,或者在错误的时间加载,即在dom准备就绪之前加载。JS错误日志中是否有错误?

以及@ispum在firebug/其他调试器中检查绑定事件的建议,还应检查以确保ajax:before回调没有取消事件:

  $("#your_link_id")
    .bind('ajax:before', function() { 
       //if this returns false, remote event is cancelled 
     });

未返回false,这将取消远程操作

以及@ispum在firebug/其他调试器中检查绑定事件的建议,还将检查以确保ajax:before回调未取消事件:

  $("#your_link_id")
    .bind('ajax:before', function() { 
       //if this returns false, remote event is cancelled 
     });

没有返回false,这将取消远程操作

页面上的JavaScript没有问题;只有你可怜的CSS

您可以看到,在整个“是”和“否”按钮中,实际的链接元素仅占用字母周围的一小部分空间。链接完全没有填充,因此在单击按钮时很容易丢失


因为您在LI元素本身上创建了:hover样式,所以给我们的印象是整个元素对单击有反应。事实并非如此。只有A元素对点击做出反应,并由rails.js处理。

页面上的JavaScript没有问题;只有你可怜的CSS

您可以看到,在整个“是”和“否”按钮中,实际的链接元素仅占用字母周围的一小部分空间。链接完全没有填充,因此在单击按钮时很容易丢失



因为您在LI元素本身上创建了:hover样式,所以给我们的印象是整个元素对单击有反应。事实并非如此。只有A元素对点击做出反应,并由rails.js处理。

firebug控制台在我点击按钮时不显示js活动。至少一段时间后不会。如果你想查看,我添加了一个链接。当我单击按钮时,firebug控制台显示没有js活动。至少过了一段时间。如果你想签出,我添加了一个链接。如果你想签出,我添加了一个链接。看起来他在头上加载了所有Java脚本,这意味着不可能不执行脚本。@DerNalia-我看不到JS错误,我在firebug中查看了页面,在JS中都正确完成了。这个链接一直对我有用。我认为Mislav是对的。如果你想查看的话,我添加了一个链接。他似乎在头部加载了所有Javascript,这意味着脚本不可能还没有执行。@DerNalia-我看不到JS错误,我在firebug中查看了页面,在JS中都正确完成了。这个链接一直对我有用。我认为Mislav是对的。如果您想签出,我添加了一个链接。注意:ajax:beforeSend事件现在称为ajax:beforeSend。如果您想签出,我添加了一个链接。注意:ajax:beforeSend事件现在称为ajax:beforeSend。这意味着什么,第一次尝试不起作用?它会让你离开页面?然后在浏览器中使用Back,然后它就可以工作了?最重要的是,您使用的是哪种浏览器?你建议我们如何复制它?@mislav:AFAIK,rails.js将点击处理程序绑定到[data remote]。这意味着什么,第一次尝试就不起作用?它会让你离开页面?然后在浏览器中使用Back,然后它就可以工作了?最重要的是,您使用的是哪种浏览器?你建议我们如何复制它?@mislav:AFAIK,rails.js将一个点击处理程序绑定到一个[data remote]。哈哈,这就是我使用其他人的按钮得到的。谢谢你,这就是我用别人的按钮得到的。谢谢