我有以下代码块,当你点击它们时清除输入字段:
$('.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后运行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);
});
}
答案 0 :(得分: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);
});
尝试一下它应该有用。