2

当我尝试单击有问题的行并启动事件侦听器时,我不断收到输出到 Xcode 控制台的调试错误代码。

完整的错误消息(删除长文件路径以保持干净):

错误:TypeError: 'undefined' is not a function in file:///Users/....../index.js at line 1339

1339 是显示的第一行代码块。

代码:

        $("#contact-list").on("click", "a", function(event){
        event.preventDefault();
        var me = this;
        console.log('The event listener is working');

        var phoneNumber = me.attr('id').text();
        console.log('phoneNumber is being sent');
        if (phoneNumber.substr(0, 1) == '+') {
            phoneNumber = me.userExitCode + phoneNumber.substr(1);
        }
        phoneNumber = phoneNumber.replace(/[^0-9]/g, '');

        var data = {
            'name': me.children('h3').val(),
            'phone_number': phoneNumber,
            'part': 'contact'
        };
4

2 回答 2

2
var phoneNumber = me.attr('id').text();

不管用。如果你的意图是获取 me 元素的 id,

var phoneNumber = $(me).attr('id');
  1. me用 $ 包裹了你(因为methis,jQuery 期望$(this)
  2. 我删除了text()函数调用,因为attr它本身会返回文本。
于 2013-07-16T15:53:33.167 回答
1

你有 JQuery 吗?如果您的 JQuery 版本比 1.7 新,则函数“live”已被弃用为“on”。

从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 附加事件处理程序。旧版本 jQuery 的用户应该使用 .delegate() 而不是 .live()。

资料来源:

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

- http://api.jquery.com/on/

于 2013-07-16T14:41:40.927 回答