0

私はこのコードを持っています:

  $(document).keyup(function(e) { 
     if (e.keyCode == 27 && $('#dropdown-themes2').is(":visible")) {
       $('#dropdown-themes2').hide();
    }
    if (e.keyCode == 27 && $('#style-inner').is(":visible")) {
       $('#style-inner').hide("slide", { direction: "left" }, 100);
       $('#panel-opener').animate({left:"0"}, 100).css({'background-image':'url(img/gear.png)',
               'background-color':'#fff'}).attr('title','Open');
    }
  });

したがって、ESCを押すと、1つのアイテムがスライド(閉じる)する必要があります。私が親の中にいるとき、それはうまく働きます。しかし、クリックしてiframe内で作業すると、ESCが機能しません。iframe内から親要素にアクセスする必要があるので、これは理にかなっています。そこで、parent.documentを追加してみたので、コードは次のようになります。

  $(document).keyup(function(e) { 
     if (e.keyCode == 27 && $('#dropdown-themes2',parent.document).is(":visible")) {
      console.log('radi');
       $('#dropdown-themes2',parent.document).hide();
    }
    if (e.keyCode == 27 && $('#style-inner',parent.document).is(":visible")) {
       $('#style-inner',parent.document).hide("slide", { direction: "left" }, 100);
       $('#panel-opener',parent.document).animate({left:"0"}, 100).css({'background-image':'url(img/gear.png)',
               'background-color':'#fff'}).attr('title','Open');
    }
  });

しかし、何もありません。iframeで苦労しています。

4

1 に答える 1

0

私自身の質問に答えるには:

たとえば、ID #displayframe の IFrame 内をクリックしたときに親ドキュメントの 1 つの要素を非表示にする場合は、次のようにしました。

 $('#displayframe').load(function(){
     var iframeRef = document.getElementById('displayframe');
     $(iframeRef).contents().click(function(){
                $(document, parent.window.document).contents().find('#style-inner').hide();
     });});
于 2012-10-13T13:02:10.767 に答える