2

.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>
4

2 に答える 2

7

最新バージョンの jQuery (1.9) を使用している場合は、イベントをバインドする方法が完全に削除されており、その.live()方法を使用/学習することをお勧めします.on()

$('.something').live('event', function(){...});

と同等です

$(document).on('event', '.something', function(){...});
于 2013-01-31T21:54:01.893 に答える
1

.livev1.7 から jQuery で廃止され、v1.9 で削除されました。

に置き換える必要があり.on()ます。

.onバインディング要素には 2 つの構文がありますが、.live1 つしかありませんでした。

バインド時に要素が存在する場合は、次のようにします。

$('.element').on('click', function(){ });

省略形を使用することもできます:

$('.element').click(function(){ });

要素がその時点で存在しない場合、または新しい要素が追加される場合 (これは.live通常使用されていたものです)、「イベント委任」を使用する必要があります。

$(document).on('click', '.element', function(){ });

注: 常にではなく、最も近い静的要素にバインドする必要がありますdocument。それまでの間、jQuery Migrate プラグインを使用して機能を復元できます.live()

于 2013-01-31T22:05:02.607 に答える