附加锚链接在Safari / iPhone上无效

时间:2012-03-08 17:00:36

标签: javascript jquery safari

我有一个功能,我的网站的很多不同部分都使用它来调用确认框。当它被调用时,它会使用各种元素格式化框并将其附加到正文中,就像这样......

$('body').append("<div id=\"confirmation\"><a href=\"javascript:confirmed()\">confirmed</a> <a href=\"javascript:closeConfirm()\">cancel</a></div>");

现在,这适用于所有接受iPhone Safari浏览器的东西,它似乎没有激活,或者正确地将锚点加载到DOM中...... 它不可点击。这是问题,当盒子正确显示时,触摸锚点什么都不做。 Console.log证明了这一点。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

你试过吗

$div = $('<div>', { id : "confirmation"});
$aConfirmed =  $('<a>', { href : "#", class : "confirmed", text: "confirmed"});
$aCancel =  $('<a>', { href : "#", class : "cancel", text: "Cancel"});
$div.append($aConfirmed).append($aCancel);
$('body').append($div);

然后使用一些事件处理程序(假设jQuery&gt; 1.7

$(document).on("click", "a.confirmed", function(){
   confirmed();
});

$(document).on("click", "a.cancel", function(){
   closeConfirm();
});

答案 1 :(得分:0)

尝试使用锚标记之外的其他内容进行测试,看看是否有效。

答案 2 :(得分:0)

通过移动锚点解决了这个非常特殊的情况,因此 没有 覆盖嵌入的视频。当锚点被放置在iPhone上的嵌入式视频上时 - 上面的触摸事件被忽略,有利于触摸以进入快速时间和播放视频事件