jquery - ajax失败后重新绑定(bind)当前函数?

标签 jquery ajax json live

我有一个使用 live() 绑定(bind)的函数:

$('.wink-back').live( "click", function( event ) {
    var uid = $(this).attr("rel");
    $(this).die( "click" ).addClass("disabled");

    $.ajax({
        type    : "POST",
        cache   : false,
        data    : "data[Wink][recipient_id]=" + uid,
        url     : "/winks/sendWink",
        success : function( data ) {        

            var newData = JSON.parse( data );

            if ( newData.Message.code == 200 ) {    // success




            } else {                                // failure

                // rebind function here

            }

        }

    });     
});

我正在使用 .die() 在第一次单击时解除元素与所有实时事件的绑定(bind),但我需要做的是将整个代码块重新绑定(bind)到该元素,如果 AJAX 请求返回错误代码 ( < 200 )。

我该如何实现这个目标?我本质上需要恢复绑定(bind)。

问候, 巴里

最佳答案

编辑从 jQuery 1.7 开始,推荐的响应事件的方法是 .on()

<小时/>

在确定不再需要绑定(bind)之前,请勿删除它们。

$('.wink-back').on("click", function( event ) {      // jQuery >= 1.7
// $('.wink-back').live("click", function( event ) { // jQuery <  1.7
    var $this = $(this);
    var uid = $this.attr("rel");

    if (!$this.hasClass("disabled")) {
      $this.addClass("disabled");

      $.ajax({
        type    : "POST",
        cache   : false,
        data    : "data[Wink][recipient_id]=" + uid,
        url     : "/winks/sendWink",
        success : function( data ) {        
            var newData = JSON.parse( data );

            if ( newData.Message.code == 200 ) { // success
                $this.off("click");     // jQuery >= 1.7
                // $this.die("click");  // jQuery <  1.7
            } else {
                $this.removeClass("disabled");
            }
        }
      });
    }     
});

关于jquery - ajax失败后重新绑定(bind)当前函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6160439/

相关文章:

jquery - 为什么我的 DIV 比它的内容小?

jquery - jquery可以在输入部分附加图像吗?

ajax - 如何使用Grails RemoteFunction模板渲染显示命令错误?

php - 当尝试检查用户名是否已存在于数据库中时,Ajax 调用不起作用

java - 从 JSON 负载中获取特定属性作为 MVC 方法参数

javascript - NodeJs : can't write a file

javascript - 如何从 <tr> 中删除一个元素

php - 在数据库更新时重定向用户

javascript - 将图像 base64 发布到服务器并将图像保存到磁盘相同的文件上传,在浏览器中预览

c# - 如何将 JSON 数组转换为 List<>?