我对.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>
答案 0 :(得分:5)
如果您使用的是最新版本的jQuery(1.9),they have removed the .live()
method of binding events entirely并建议您使用/学习.on()
方法。
$('.something').live('event', function(){...});
相当于
$(document).on('event', '.something', function(){...});
答案 1 :(得分:1)
.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 plugin可用于恢复.live()
功能。