2017-10-20 125 views
0

我無法在Safari(以及iOS設備上)中使用適用於Firefox,Chrome,Edge和IE的東西。點擊處理程序不會觸發在Ajax回調中呈現的元素 - 僅在Safari中

在我的頁面上有一個輸入字段,將輸入發送回服務器,並在服務器創建此元素後將元素添加到dom(將其視爲與服務器端呈現搜索結果的複雜組合框)。

了加頁此DOM元素包含了這樣一個

<a href="" class="stampOption">Search result 1</a> 

可點擊的鏈接。由於沒有人知道有多少這樣的鏈接將出現在頁面上,我對這樣的文件登記AA點擊處理程序:

的$(document)。在( 「點擊touchstart挖掘」 功能(EVT){

if ($(evt.target).hasClass("stampOption")) { 

       some code...  
}); 

雖然這是我到目前爲止測試的所有瀏覽器,點擊細漢dler從未在Safari中被調用過。

我試過幾種選擇像委派事件(這也似乎在Safari/iOS的問題),像這樣:

$(document).on("click touchstart tap", ".stampOption", function(evt) { 

。我應用了遊標:指針CSS技巧以及在SO和其他地方建議的onclick =「」技巧。

我也確保沒有其他的點擊事件處理程序可以防止冒泡等。

因此,任何想法我可以嘗試什麼?

+0

嘗試給href一個'#',並防止鏈接的默認操作 - 我認爲safari可能有一個鏈接沒有href – Pete

+0

+皮特不幸,這doesn沒有幫助。 href沒有被導航到,並且點擊處理程序根本沒有被調用。就像從前一樣。 –

回答

0

沒關係。問題是在使用relatedTarget的相同頁面上的模糊處理程序,在Safari上,它始終爲空,所以一些if() - 語句在Safari上從未得出正確的結論,而其他瀏覽器的結果都不錯。 讓我們假設一些處理程序在Safari上消除了點擊事件。一個典型的情況下,無知的瀏覽器不兼容...

相關問題