jQuery:将CSS应用于父DIV

时间:2012-03-27 00:50:51

标签: jquery css parent

假设我在做代码。此代码使用kontextua广告

<div class="pread">
    <div class="postad kontextuaDisplayREGULARS728x90">
    <div style="display: block !important; margin-bottom: 0px !important; margin-left: 0px !important; margin-right: 0px !important; margin-top: 0px !important; overflow-x: hidden !important; overflow-y: hidden !important; padding-bottom: 2px !important; padding-left: 4px !important; padding-right: 4px !important; padding-top: 2px !important; z-index: 10000 !important; ">
        <iframe style="display: block; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; overflow-x: hidden; overflow-y: hidden; background-position: initial initial; background-repeat: initial initial; " frameborder="0" width="728px" height="90px" src="javascript:(function(){return '<html><meta http-equiv=\'Content-Type\' content=\'text/html\' charset=\'UTF-8\'></meta><head><style> html { overflow:hidden; } body { background-color:transparent; float:left; padding:0; margin:0; overflow:hidden; height:90px;width:728px;} .contenido{margin:0}</style></head><body><div class=\'contenido\' id=\'banner\'><SCRIPT TYPE=\'text/javascript\' SRC=\'http://ad.yieldmanager.com/st?ad_type=ad&ad_size=728x90&section=2871061\'></SCRIPT></div></body></html>'})()"></iframe>
    </div>
    </div>
</div>

点击时我不知道并将CSS应用于父“.pread”。我怎么能这样做?

<script>
        $(".postad").live('click', function(){
        alert("clicked");
            $(this).parent().css({
                'backgroundImage' : 'url(http://cdn1.iconfinder.com/data/icons/DarkGlass_Reworked/128x128/actions/camera_test.png)',
                'backgroundColor' : 'limeGreen'
            });
        });
</script>

但它不起作用。谢谢!

3 个答案:

答案 0 :(得分:3)

如果您将一些实际内容提供给iframe以外的postad div,则您的代码可以正常运行。如果您点击我添加到该div的xxx,您可以see it work here

如果您单击iframe,则无效,因为点击不会从iframe冒出来进入父对象,因此当您点击iframe时,不会收到任何点击事件postad div。如果您点击iframe,点击就会停止。

可以拦截来自父页面的iframe上的点击,但这涉及在iframe的顶部放置透明div,以便父页面获得点击,而不是iframe。你可以在这里看到透明的div想法:http://jsfiddle.net/jfriend00/h2WTB/ - 只需点击下载图片,点击将由透明div处理,它会冒泡到你的postad事件处理程序。

答案 1 :(得分:0)

你的CSS属性错了。他们是连字符,而不是camelCase。

$(this).parent().css({
    'background-image' : 'url("http://cdn1.iconfinder.com/data/icons/DarkGlass_Reworked/128x128/actions/camera_test.png")',
    'background-color' : 'limeGreen'
});

答案 2 :(得分:-2)

试试这个

<script>
$(document).ready(function(){
        $(".postad").click(function(){
        alert("clicked");
            $(this).parents('.pread').css({
                'backgroundImage' : 'url(http://cdn1.iconfinder.com/data/icons/DarkGlass_Reworked/128x128/actions/camera_test.png)',
                'backgroundColor' : 'limeGreen'
            });
        });
});
</script>

它应该运作良好:)