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

1
var iframe = document.getElementsByTagName('iframe');
innerDoc = iframe[0].contentWindow;

$(innerDoc.document.getElementsByClassName('clearinputtxet')).focus(function(){
if($(this)[0].defaultValue==$(this).val()) $(this).val('');
});

$(innerDoc.document.getElementsByClassName('clearinputtxet')).blur(function(){
    if($(this).val()=='') $(this).val($(this)[0].defaultValue);
});

试试这个它应该工作。

于 2012-11-05T10:02:40.713 回答