我想点击页面上的div来运行一定数量的javascript任务,还要在控制器上运行操作。更详细地解释:
我有一个untitled.js文件,其中我放了一堆jquery代码:
$(function(){
$('nav li').hover(function(){
$(this).addClass("bigger", 50);
}, function(){
$(this).removeClass("bigger", 50);
});
$('#notify').click(function(){
$('.notifications').show();
});
$('#notify').click(function(){
(some code to run a controller action)
});
});
我想在单击#notify按钮时在“Users”控制器上运行一个名为“run_tasks”的控制器操作,并显示一个通知类。正如你在上面的代码中看到的那样,我有jquery代码用于显示已经整理好的.notifications,但我不知道该放什么“(一些代码来运行一个控制器动作)”。要提供有关控制器操作的信息,它将只运行一些我想要运行的任务,它不会重定向到新页面或任何内容。以下是用户控制器的基本格式:
class UsersController < ApplicationController
....
def run_tasks
end
end
我正在尝试做什么,如果是的话,我在那里放了什么jquery代码?我正在使用Rails 3.0.9和最新的jquery。
答案 0 :(得分:5)
只要您有该控制器操作的路由,您可以通过使用jQuery $.get()向它发出ajax请求来使其运行。
$('#notify').click(function(){
$('.notifications').show();
$.get('/users/run_tasks');
});
也不需要做两个$('#notify').click()
,你可以将两个语句放在一个块中(正如我在上面的代码片段中所做的那样)。
请注意,在这种情况下,.get()
只是让请求在服务器上调用控制器操作并忽略结果,但您也可以使用它来处理控制器返回的数据。请参阅上面的文档链接。