仅在第一次单击时触发Ajax

时间:2012-07-15 06:28:12

标签: javascript jquery

我想只在第一次点击时调用ajax来保存带宽,因为数据很大。以下是我的代码

$('.id-list').click(function() {
$.ajax({
    type: "POST",
    url: "timesheet.php?action=idlist",
    async: false,
    success: function(rdata) {
             $('.id-list').removeClass('id-list') //remove the class
    }
})      
})

检查元素,class="id-list"已被删除,但当我再次单击它时,它会再次触发ajax调用,我不想发生这种情况。

有没有办法实现这个? 感谢。

3 个答案:

答案 0 :(得分:3)

API .onehttp://api.jquery.com/one/

将处理程序附加到元素的事件。每个元素最多执行一次处理程序。

   $('.id-list').one('click', function() {
    $.ajax({
    type: "POST",
    url: "timesheet.php?action=idlist",
    async: false,
    success: function(rdata) {
             $('.id-list').removeClass('id-list') //remove the class
    }
})      
})

答案 1 :(得分:2)

http://api.jquery.com/one/

描述:将处理程序附加到元素的事件。每个元素最多执行一次处理程序。

$('.id-list').one("click",function() {
  $.ajax({
    type: "POST",
    url: "timesheet.php?action=idlist",
    async: false,
    success: function(rdata) {
             $('.id-list').removeClass('id-list') //remove the class
    }
  })      
})

答案 2 :(得分:0)

http://api.jquery.com/live/

$('.id-list').live("click", function(){
$.ajax({
    type: "POST",
    url: "timesheet.php?action=idlist",
    async: false,
    success: function(rdata) {
         $('.id-list').removeClass('id-list') //remove the class
    }
})
});