簡體   English   中英

jQuery .live事件未觸發

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM