2016-02-27 35 views
0

我有一个元素说,一个div内的图像和其他文本。最初,这个div有visibility: hidden;display: none;延迟加载隐藏元素,直到您将其属性更改为javascript可见?

属性我如何防止浏览器加载这个div的内容,直到我的属性更改为visibledisplay: block;

+0

你是什么意思 “加载内容”?无论CSS样式/可见性如何,浏览器都将读取HTML DOM中的元素。你可以简单地从DOM中删除,并通过JavaScript/AJAX动态插入 – Aziz

+1

你可以把它放在一个单独的文件,然后使用Ajax –

+0

感谢您加载它。我要带看AJAX – castlenibill

回答

0

您可以使用脚本块插入标记不被解析。

https://jsfiddle.net/dhj3cshb/

和显示与真实标记替换它

function show(node){ 
    var $node = $(node); 
    $node.not('script').css('display', ''); 
    $node.filter('script').replaceWith(function(){ 
     return '<div id="'+this.id+'" class="'+this.className+'">'+this.innerHTML+'</div>'; 
    }); 
} 

function hide(node){ 
    $(node).css('display', 'none'); 
} 

然后就切换显示状态

编辑:

如果它仅仅是对延迟加载图像我将img-src写入数据属性,并具有推动该属性的函数○SRC属性

<img data-src="http://lorempixel.com/400/200/" /> 

和js

function loadSrcNow(node){ 
    $(node).filter('img[data-src]').each(function(){ 
     this.src = this.dataset.src; 
     this.removeAttribute('data-src'); 
    }); 
}