2013-07-16 88 views
3

我得到了一個網頁,有很多不同的DOM設置,其中點擊事件綁定。Android Webview Javascript單擊事件沒有觸發,因爲它應該

但在某些情況下,點擊事件不會觸發。 我用同樣的方法寫了我所有的事件: $('#Element')。click(function(){...});

我已經把它縮小到只是提醒某些事情,當我點擊那些不起作用的元素時。但沒有任何反應。

這只是發生在Android手機: 三星Galaxy Note 4.1.2 三星Galaxy S3迷你4.1.2 當我在WebView中運行, 如果我在Chrome移動瀏覽器上運行它,它完美的作品。

一般來說,點擊事件放在'a'標籤上,標籤和輸入類型隱藏在裏面。

有沒有一些未知的規則不使用它內的標籤或標籤或東西,破解了這對於Android瀏覽器?還是有這種類型的錯誤的其他解決方案?

PS。當我在單元之後多次(5-6次)單擊該元素時,它會消失...

回答

4

您是否爲WebView啓用了JavaScript?

webView.getSettings().setJavaScriptEnabled(true); 
+0

是的,正如我寫的,並非所有的點擊事件都被竊聽。 –

0

,如果你使用事件代表團,而不是通常的單擊事件,這將是罰款......(大部分時間)

$(document).on('click', '#element', function(){}); 
1

首先,你不應該使用.click()因爲它已棄用。相反,使用

$('#id').on('click', function(event) { 
    //whatever 
}); 

是否用javascript動態插入元素?如果是這樣,你將需要使用事件委託,如yshrsmz所示。另外,在你的例子中,你寫了#element,這個目標是一個ID爲element的元素,你應該只在dom中使用一次id。相反,將類應用於應觸發點擊的所有元素。

確保所有綁定正在文檔準備就緒上設置。

這可能是值得通過W3C驗證程序運行您的HTML,以確保其全部有效。如果沒有,這可能會導致錯誤。

最後,檢查你的Android logcat,看看你點擊元素時是否有錯誤報告。