2013-01-16 127 views
0
所有控件的Click事件

目前我身后当用户点击一个按钮(用按钮的事件),并使用下面的AJAX调用代码的函数:钩住使用jQuery

$('.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。

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

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

希望它是有道理的。

+0

给予类的所有4个输入相同即toggleBtn –

+0

@Dnyan但我怎么知道哪个控制充满 – Zaki

+0

我需要澄清:点击4个按钮中的任何一个来执行相同的操作,或者单击一个按钮,并使用它来对4个不同的元素组执行操作,或者在四个元素内容中的任何一个发生变化时执行更新 - 或者您的意思是别的吗?它也可能有助于在页面上显示一些标记。 –

回答

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) { 
      ... 
      ... 
     } 
    }); 
}); 
+0

我认为这将是很好的基于id我可以填充我的对象...是否有可能在ajax上运行无静态方法..因为我无法访问我的控件在 – Zaki

+0

之后的代码中在ajax调用*中需要访问的客户端上的任何值都必须通过'data'(或查询字符串,但是后期数据显然更可取)传递。这与服务器端功能是否是静态无关。 – Archer

0

我认为你可以使用这个逻辑:

var request = 0; //global flag 

$('.toggleBtn').click(function(e) { 
    if (!request) { 
     $.ajax({ 
     .. 
     success: function(){ 
      request = 1; //update the flag 
     } 
     }); 
    } 
}); 
+0

请分享downvote的原因。 –

+0

请问你能解释一下,为什么这个标志? – Zaki

+0

是不是我低调,但我想这是因为他不要求它只发生一次。他在问如何为一组元素做到这一点。你已经专注于单词“一次”,但这不相关。他的意思是“之后”。 – Archer