1

一直在它几个小时请帮助

   $("#NewsReel").click(function(){
   if( $(".block_news").css("background","url('/new_skool/images/news_1.jpg')no-repeat"))
   {
   $(".block_news").css("background","url('/new_skool/images/news(2).jpg')no-repeat");
   }
   else
   {
   if( $(".block_news").css("background","url('/new_skool/images/news(2).jpg')no-repeat"))
   {
   $(".block_news").css("background","url('/new_skool/images/news_1.jpg')no-repeat");
   }
   }
   });

谢谢你

它会更改图像一次,但不会触发第二个 if 语句。

4

4 回答 4

3

获取背景值不是以这种方式执行的。你需要使用:

if ($('element').css('background') == 'value') {
   ...
}

此外,不能保证 jQuery 不会完全按照您设置的方式优化或设置背景。例如,它可能将值返回为:

no-repeat url('/new_skool/images/news(2).jpg')

最好创建两个 CSS 类,然后使用toggleClass()更改背景图像,例如在这个演示中

HTML

<ul id="NewsReel">
    <li class="block_news">news</li>
</ul>​

CSS

li {
   background:url('http://lorempixel.com/25/25/abstract/1/') no-repeat;
}

li.clicked {
    background:url('http://lorempixel.com/25/25/abstract/2/') no-repeat;
}

JavaScript (jQuery)

$("#NewsReel").click(function() {
    $('.block_news').toggleClass('clicked');
    return false;
});

​</p>

于 2012-04-06T11:54:52.173 回答
2

使用 css 类通过 jQuery addClass//设置背景样式removeClasshasClass

于 2012-04-06T11:50:45.857 回答
2

此行/测试:

if( $(".block_news").css("background","url('/new_skool/images/news_1.jpg')no-repeat"))

...将始终返回 true 的等效项(它返回一个 jQuery 对象)。

于 2012-04-06T12:00:46.647 回答
1

在所有情况下,您都设置了背景。要检索背景的值,请在 css 方法中丢失第二个参数。

于 2012-04-06T11:48:00.397 回答