我用jquery mobile'tap'事件測試過,發現它被觸發了兩次,每次觸發。代碼如下的html頁面:jQuery手機觸發事件觸發兩次
<!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.js"></script>
<style>
#box{
background-color:red;
width:200px;
height:200px;
}
</style>
</head>
<body>
<div id="box">
tapped me
</div>
<script type="text/javascript">
$(document).ready(function() {
$('#box').bind('tap',function(event) {
alert('why');
});
});
</script>
</body>
</html>
更諷刺的是,當我測試過這個的jsfiddle,它只觸發事件爲一次。
這是鏈接。 http://jsfiddle.net/mochatony/tzQ6D/6/
經過進一步測試後,我發現這個bug已經消失,將javascript放在標題部分。
<!DOCTYPE html>
<html>
<head>
<title>Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
</script>
<script type="text/javascript" src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.js">
</script>
<style type="text/css">
#box{ background-color:red; width:200px; height:200px; }
</style>
<script type="text/javascript">
$(document).ready(function() {
$('#box').bind('tap', function(event) {
alert('halo');
});
});
</script>
</head>
<body>
<div id="box">
tapped me
</div>
</body>
</html>
我無法解釋爲什麼在body和header部分的放置使這個不同。
感謝您的答覆。用pageinit做了一次測試,pageinit事件也被觸發了兩次。我測試了Firefox和Chrome。對我來說似乎很奇怪。 – TonyTakeshi