2013-03-08 57 views
0

如果我有一个div充当容器,当空显示图像,并且我想要在内容动态添加到容器时删除该图像,什么是最好的Jquery方法来完成这个?照常进行 -删除动态内容添加到它的div的占位符图像

if ($(".container").html().length <= 0) { 
    $('.ad').show(); 
} 

在这种情况下不起作用,因为要添加的内容是动态的并且不涉及刷新。我试图将检查存储在一个每隔100ms运行一次的setIntercal函数中,但结果并不如预期的那样结果,并且还导致页面上出现一些奇怪的闪烁。

编辑**

乔什 - 伯吉斯的方法将是一个我在所有情况下使用,如果我没有支持IE8。正因为如此,我将回到在添加内容的点击事件发生时添加.hide()方法。谢谢您的帮助!

+0

你是如何添加的内容?如果图片只是div中的''标签,是不是会被新内容自动替换? – JJJ 2013-03-08 19:30:06

+3

当您更新内容时,如何调用该代码? – 2013-03-08 19:30:13

+0

@Stavros_S当添加*动态内容*时调用的函数是您应该检查是否隐藏/显示占位符图像的点。 – sweetamylase 2013-03-08 19:31:28

回答

2

为什么要使用jQuery?

试试这个CSS:

div.myDiv:empty{ 
    background-image: url(path/to/myimage); 
    height: 50px; 
    width: 50px; 
} 

div.myDiv { 
    background-image: none; 
    height:auto; 
    width: auto; 
} 

- 编辑 -

Here's a working example in jsfiddle, and it works in reverse as well

+0

会给它一个镜头,虽然我不认为这样的东西会工作时动态地添加到容器的内容。 – 2013-03-08 19:59:30

+0

@Stavros_S检查它,它完全。我只是放了一个小提琴。巴姆。 – 2013-03-08 20:06:47

+0

谢谢你的例子,不幸的是我需要支持IE8,尽管它不支持:空选择器。我会以任何方式给你答案,因为我没有证明这一点。谢谢! – 2013-03-08 20:18:19