【问题标题】:My bindings are messed up, how can I fix this?我的绑定搞砸了,我该如何解决这个问题?
【发布时间】:2011-09-08 21:16:58
【问题描述】:
 $(function(){
   $('.update-mod-form').bind('ajax:success', function(evt, data, status, xhr){
       data = $.parseJSON(data); 
       console.log(data.success);
       console.log(data);
      if (data.success == true) {
           $('#page').html(data.html);
        }
        else {
        }
   });
 });

您是否看到任何可以纠正绑定问题的 JS 绑定最佳实践?此方法有效,一旦将data.html 与.html 方法一起添加后,该方法第二次无效。

data.html,生成一个类 .update-mod-form,它是未绑定的 如何绑定这个新类?

我还要注意,我多次出现这个类,是否可以通过这种方式将一个类的多个元素绑定到一个方法?

【问题讨论】:

  • 在调用 $.parseJSON 之前,您的数据是什么样的?你能做一个console.log(数据)并粘贴到这里吗?

标签: javascript jquery binding


【解决方案1】:

如果#update-mod-form is#page 中,那么在第一次ajax 调用之后,这个表单(及其绑定)就会被清除。你必须重新绑定它,或者使用live 而不是bind

ps。你确定事件是ajax:success 而不是ajaxSucces?你为什么要使用全局事件?

【讨论】:

  • 用 .live 替换 .bind 方法效果很好。谢谢!我从午餐开始就一直在研究这个问题!
【解决方案2】:

删除那个“未定义”的服务器端,否则它不是一个有效的 JSON

【讨论】:

  • 抱歉,这是一个 console.log(data.success) 它应该返回 undefined,因为它没有解析我的 json
  • @JZ: 你确定你的 ajax 是用 getJson 或 dataType json 调用的吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-03
  • 2012-03-30
  • 2020-03-25
  • 2020-02-14
相关资源
最近更新 更多