[英]Jquery .live event not firing
關於.live
觸摸事件,我有一個簡單的問題。 我想做的是,當用戶單擊/觸摸頁面主體(容器)時,將refreshCanvas
函數。 但是,這似乎不適用於我。
JavaScript的:
<script type="text/javascript">
function refreshCanvas () {
var code = document.getElementById('iframe');
code.src = code.src; // that is the essence here
}
setInterval(refreshIframe1, 20000);
function refreshIframe1() {
$("#iframe")[0].src = $("#iframe")[0].src;
}
$('#container').live("tap", function() {
refreshCanvas();
});
</script>
HTML:
<a href="javascript:refreshCanvas()"><img src="data/refresh.jpg"></a>
<div id="container">
<iframe id="iframe" src="data/canvas.html" z-index: 0; style="border: 0; position:absolute; top:0; left:0; right:0; bottom:0; width:100%; height:100%"></iframe>
</div>
如果您使用的是最新版本的jQuery(1.9),則他們已完全刪除了綁定事件的.live()
方法,建議您使用/學習.on()
方法。
$('.something').live('event', function(){...});
相當於
$(document).on('event', '.something', function(){...});
從v1.7開始, .live
在jQuery中已被棄用,而在v1.9中已被刪除。
您應該將其替換為.on()
。
.on
具有2種用於綁定元素的語法,而.live
僅具有1種語法。
如果綁定時該元素存在,則可以這樣進行:
$('.element').on('click', function(){ });
您甚至可以使用速記:
$('.element').click(function(){ });
如果該元素當時不存在,或者將添加新的元素(通常使用.live
),則需要使用“事件委托”:
$(document).on('click', '.element', function(){ });
注意:您想綁定到最接近的靜態元素,而不是總是document
。 同時, jQuery Migrate插件可用於恢復.live()
功能。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.