【问题标题】:Function apply in mobile safari功能适用于移动 safari
【发布时间】:2012-02-19 14:54:11
【问题描述】:

我在 iOS 上的移动 Safari 中收到一条奇怪的错误消息:

“TypeError: '[object Object]' 不是 'Function.prototype.apply' 的有效参数”。

触发此操作的代码在 Chrome 中运行良好(在将事件类型调整为点击而不是点击之后)。

    // task-item visualization
    $(".task-item").live('touchend',function(e){
        app.toggleTask.apply(this,e);
    });

我曾经在事件绑定器中直接将 .toggleTask 作为匿名函数,但我正在尝试重构所有这些东西,以便我可以重用它。我错过了什么?我在事件上下文中使用 apply 将它传递给函数,但它似乎不喜欢移动 safari 中的这个参数(猜测 phonegap 中的相同错误,但看不到它)。

该项目使用 Zepto 0.7,phonegap 1.2,并且在 iOS5 ipad 上。

【问题讨论】:

  • 试过app.toggleTask.apply(this,arguments); ?

标签: javascript ios apply zepto


【解决方案1】:

根据 MDN,the apply method 将数组作为第二个参数。你想试试:

// task-item visualization
$(".task-item").live('touchend',function(e){
    app.toggleTask.apply(this,[e]);
});

【讨论】:

  • 完美,工作正常。错误的不是“this”,而是您看到的第二个参数。奇怪的是它在 chrome 中运行良好!
猜你喜欢
  • 2017-11-25
  • 1970-01-01
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多