使用:remote => true和hover事件

我想在Rails中调用Ajax调用。 我已经看到了使用:remote选项这样做的好方法。 我有这个有效的例子:

  'get_transfers', :section_id => params[:section_id]}, :method => :get, :remote => true) %> 

但是,我不希望用户通过按下按钮或单击链接来调用调用,而是在Javascript事件上调用它(将鼠标hover在元素上)。

有没有办法使用:remote => true ,但是当将鼠标hover在元素上时会自动调用它? 如果有,怎么样?

选项1

要使按钮响应单击并将鼠标hover在其他div上,您可以尝试执行以下操作:

在您的视图中,您为该按钮指定了一个唯一的ID,并将一些类添加到应该充当触发器的元素中:

 <%= button_to('Get Transfers', {action: 'get_transfers', section_id: params[:section_id]}, method: :get, remote: true}, {id: 'remote_hover_button'}) %> 
Hover me!

在您的js中,您希望绑定到该触发器元素并触发按钮上的click事件:

 $(document).ready(function(){ $('.some_trigger').hover(function(){ $('#remote_hover_button').trigger('click'); }); }); 

选项2

通过创建一个你hover的div手动编写ajax并为其提供一个要调用的url:

 
Hover me!

绑定到div并进行ajax调用:

 $(document).ready(function(){ $('.some_trigger').hover(function(){ $.ajax($(this).data('url')); }); }); 

这实际上只会触发操作而不会对响应执行任何操作。 您可以使用以下内容绑定到结果:

 $(document).ready(function(){ $('.some_trigger').hover(function(){ $.ajax($(this).data('url')) .done(function() { alert("success"); }) .fail(function() { alert("error"); }) .always(function() { alert("complete"); }); }); }); 

有关ajax函数的更多信息,请参阅文档 。