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

这就是我在 iframe 中找到带有 id 的链接的方式#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>'s <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 回答