2012-10-10 42 views
0

以下代碼將<div3>添加到html,當<div1>被點擊時。點擊<div3>然後顯示除iPhone之外測試的每個網頁瀏覽器的警報。適用於Android,工作在Safari/OSX:使用jQuery for iPhone webapp,'on'不適用於動態創建的元素

<!doctype html> 
<html> 
<head> 
<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> 
<script type="text/javascript"> 
$(function() { 
    $('#div1').on('click', function(e) { 
     $('#div2').html('<div id="div3">Now Click Me!</div>'); 
    }); 
    $('#div2').on('click', '#div3', function(e) { alert('OLA!'); }); 
}); 
</script> 
</head> 
<body> 
<div id='div1' style='border:black 1px solid; background:yellow'>CLICK ME</div> 
<div id='div2' style='border:black 1px solid; background:yellow; font-size:48px'/> 
</body> 
</html> 

我希望能找出爲什麼Safari瀏覽器/ iPhone的行爲不同位置,以及是否有一種方法來解決此問題。

+0

非常有趣......我爲這個http://tiny.cc/iphonetest1創建了一個JS小提琴(稍微修改了jsfiddle,你說得對,它不適用於iphone/safari) – scunliffe

+1

它也不會不適用於iOS的谷歌瀏覽器......所以這可能是一個移動WebKit問題,而不僅僅是一個移動Safari問題 – scunliffe

+0

是的,如果我們無法動態獲取點擊,我們就死在這個應用程序中創建元素。 – LineloDude

回答

0

好的,我發現了這個問題。點擊不在div3中註冊,因爲div3是透明的。添加背景色到div3的作品:

$('#div2').html('<div id="div3" style="background:pink;">Now Click Me!</div>'); 

感謝您的幫助。

相關問題