0
  var $result_link = $('#sample_test').contents().find('#get_result_link');

これは、ID付きのiframeでリンクを見つける方法です#sample_test

このコードは機能します:

$result_link.click(function(){
       if ($contents.find('.new_answer').length!=0){
               $('html, body').animate({
                   scrollTop: $contents.find('.new_answer').first().offset().top/2
               }, 500);
           }
});

ただし、iframe ソースには AJAX アクションがあり、この「クリック」をバインド解除できます (このリンクで要素をリロードします)。通常delegateは機能しません(適切なバージョンのJQを使用しています)

  $('body').delegate('#sample_test', 'click', function(){
       if ($contents.find('.new_answer').length!=0){
           $('html, body').animate({
               scrollTop: $contents.find('.new_answer').first().offset().top/2
           }, 500);
       }


    })
4

2 に答える 2

2

イベントの伝播はフレーム境界を越えません。

委任ハンドラーを にバインドする必要があり<iframe>ます<body>

于 2013-08-11T11:49:15.450 に答える
0

このようなことを試してください。

var frame = $('iframe').contents();

frame.on('click', '#sample_test', function() {
   // Code here.
});

このようにして、イベントを親ではなくフレームに適用します。

于 2013-08-11T11:55:13.243 に答える