0

クリックすると入力フィールドをクリアする次のコードブロックがあります。

$('.clearinputtext').focus(function(){
    if($(this)[0].defaultValue==$(this).val()) $(this).val('');
});
$('.clearinputtext').blur(function(){
    if($(this).val()=='') $(this).val($(this)[0].defaultValue);
});

iframe 内でも実行する必要がありますが、可能ですか?

編集: iframe はライトボックスで動的に読み込まれることを忘れていたので、ページが読み込まれたときにそこにはありません。

解決

私はそれを解決することができました。最善の解決策ではないかもしれませんが、今のところ問題ありません。リンクをクリックするとiframeがライトボックスで読み込まれるため、ページが読み込まれるとそこにないため、追加後にiframeのコードを実行する必要がありました。afterShowこれは、ライトボックスのイベント ハンドラーを使用して行いました。

関連するコードは次のとおりです。

afterShow: function() {
    // First get html content of iframe
    var content = $('.fancybox-inner iframe').contents().find('html');
    //Then just apply same code to the iframe
    $(content).find('.clearinputtext').focus(function(){
        if($(this)[0].defaultValue==$(this).val()) $(this).val('');
    });
    $(content).find('.clearinputtext').blur(function(){
        if($(this).val()=='') $(this).val($(this)[0].defaultValue);
    });
}
4

1 に答える 1