我正在构建新的网页,它支持ios Web应用程序。当我尝试打开Web应用程序时,我的.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网络应用才会出现问题。
答案 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();
...
});
希望这有帮助。