0

目前,一旦有人单击按钮(使用按钮的事件)并使用以下 ajax,我就会在代码中调用一个函数:

$('.toggleBtn').click(function(e) {
    $.ajax({
                        type: "POST",
                        url: "page.aspx/function",
                        data: "{'id': '" + id + "'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        async: false,

                        success: function (msg) {

是否可以在 jquery 中挂钩到当前页面中的所有控件事件并只运行一个 $.ajax。

假设我有四个控件、两个文本框和两个组合框,并且想要相应地更新数据库。如果我想运行上面的代码,我需要一一挂钩他们的点击事件,并在后面的代码中运行单独的函数,这并不理想。

换句话说,一旦用户选择/输入控件值,就想填充我的对象。

希望这是有道理的。

4

2 回答 2

0

我认为您可以使用以下逻辑:

var request = 0; //global flag

$('.toggleBtn').click(function(e) {
    if (!request) {
      $.ajax({
         ..
         success: function(){
           request = 1; //update the flag
         }
      });
    }
});
于 2013-01-16T12:20:46.060 回答
0

如果我理解您的问题,您是在询问如何为一组元素的单击事件触发相同的代码,但希望将被单击元素的 ID 作为数据中的参数传递。如果是这样,这将对具有该类的所有元素执行此操作className...

$('.className').click(function(e) {
    $.ajax({
        type: "POST",
        url: "page.aspx/function",
        data: "{'id': '" + this.id + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        success: function (msg) {
            ...
            ...
        }
    });
});
于 2013-01-16T12:33:14.960 回答