2012-03-08 53 views
4

我有一個函數,我的網站的很多不同部分使用該函數調用確認框。當它被稱爲它格式化盒與各種元素,並將其添加到全身,像這樣......加載的錨鏈接在Safari/iPhone上未激活

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

現在,這完全適用於所有接受iPhone Safari瀏覽器,這似乎並沒有激活,或將錨點正確加載到DOM中... 它不可點擊。這是問題,如果盒子正確顯示,觸摸錨點什麼也不做。 Console.log證明了這一點。

任何想法?

+0

你能剪切並粘貼你的確切代碼嗎?提供的樣本甚至不會運行,因爲沒有雙引號。 – 2012-03-08 17:07:37

+0

試試這個 - '$( '主體')HTML;' – Jared 2012-03-16 23:00:44

+0

你們是不是重定向到一個新的頁面 閱讀本。($( '身體')HTML()+

「。):HTTP:// stackoverflow.com/questions/3020456/safari-anchors-on-links-not-working – Alytrem 2012-03-19 15:44:03

回答

0

這個非常特殊的情況是通過移動錨來解決的,所以它沒有覆蓋嵌入的視頻。當錨被放置在iPhone上的嵌入式視頻上時 - 觸摸事件高於它被忽略,有利於觸摸快速時間和播放視頻事件

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> 1.7

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

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

問題是,我傳遞參數證實(),根據需要改變。 ()並沒有什麼關於iPhone – waxical 2012-03-20 10:28:00

+0

@waxical什麼,我想說的是:「不使用內聯JavaScript」,使用事件處理程序 – 2012-03-20 10:32:47

+0

好了 - 我已經嘗試過了,沒有用但是,我發現這個問題確認框覆蓋了Quickt ime視頻嵌入 - 在iPhone上 - 這似乎禁用頂部的觸摸事件,因爲我把它放在它下面的鏈接,它的工作原理。 – waxical 2012-03-20 10:43:36

0

嘗試使用其他的東西比用於測試的錨標記,看看是否可行

+0

我已將其更改爲簡單提醒以查看是否有效。 – waxical 2012-03-20 10:28:18

+0

確定很酷,我的意思是將該事件附加到除標記以外的其他事件。 警報是如何爲你工作的? – slowBear 2012-03-20 15:56:54