クリックすると入力フィールドをクリアする次のコードブロックがあります。
$('.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);
});
}