ios web应用程序.delegate无法正常工作

时间:2014-03-15 18:09:28

标签: javascript jquery html iphone-standalone-web-app

我正在构建新的网页,它支持ios Web应用程序。当我尝试打开W​​eb应用程序时,我的.delegate方法没有触发。它就像我点击<a href='#'></a>一样。转到页面顶部并且方法没有触发。

到目前为止我所做的是

$(document).delegate("a[data-what='voteThis']", "click", function (e) {
            e.preventDefault(); 
                 .
                 . 
                 .
                });

我的HTML代码是

<a href='#' data-what='voteThis' id='vote" + id + "'> vote </a>

我在Android上进行了测试,没有任何问题。我也在Ios上测试了Chrome和Safari浏览器,它们没有问题。只有ios网络应用才会出现问题。

1 个答案:

答案 0 :(得分:1)

除非您使用jQuery&lt; 1.8(你不应该......),你应该使用.on()

$(document).on('click','a[data-what="voteThis"]',function(e){
    e.preventDefault();
    ...
});

此外,请不要委托文档中的点击事件...它的效率非常低,您应该尽可能从父母那里委派。例如:

$('.voteTheseContainer').on('click','a[data-what="voteThis"]',function(e){
    e.preventDefault();
    ...
});

除非您有多种类型的元素具有数据元素what,否则您可以删除a限定符,因为它执行相同的操作但更快:

$('.voteTheseContainer').on('click','[data-what="voteThis"]',function(e){
    e.preventDefault();
    ...
});

希望这有帮助。