2014-02-17 111 views
2
<script type="text/javascript" > 
    $('li').mouseout(function() { 
     divId = $(this).attr('id'); 
     $(this).css('background', 'url(assets/images/clients/logo/' + divId + '.jpg)'); 
    }); 
    $('li').mouseover(function() { 
     divId = $(this).attr('id'); 
     $(this).css('background', 'url(assets/images/clients/logo-gc/' + divId + '.jpg)'); 
    }); 
    $('li').load(function() { 
     divId = $(this).attr('id'); 
     $(this).css('background', 'url(assets/images/clients/logo/' + divId + '.jpg)'); 
    }); 
</script> 

我犯了什么错误?图像不显示在页面加载后启动...li鼠标悬停的动态ID

HTML:

<ul> 
    <li id="i1"></li> 
    <li id="i2"></li> 
    <li id="i3"></li> 
    <li id="i4"></li> 
    <li id="i5"></li> 
    <li id="i6"></li> 
    <li id="i7"></li> 
    <li id="i8"></li> 
</ul> 

如何加载页面加载后li.load()的默认图像?

+0

顺便说一句,好像你没有声明'divId'。确保你声明它。例如使用'var divId;'或'var divId = $(this).attr('id');'。 –

回答

1

试试这个,

$(function(){ 
    $('li').each(function(){ 
    var divId = $(this).attr('id'); 
    $(this).css('background-image', 'url(assets/images/clients/logo/'+divId+'.jpg)'); 
    }); 
}); 
+0

谢谢@Krish R –

+0

我可以知道Downvoting的原因吗? –

3

使用background-image代替background

$(this).css('background-image', 'url(assets/images/clients/logo/'+divId+'.jpg)'); 

要显示页面加载使用后图像$(document).ready(function(){ })处理

$(document).ready(function(){ 
    $('li').each(function(){ 
     $(this).css('background-image', 'url(assets/images/clients/logo/' + this.id + '.jpg)'); 
    }); 
}); 
0

据我所知<li>元素没有jQuery.load方法(在上下文中,你试图到这里)。该jQuery.loaddocumentation明确表示:

此事件可以被发送到一个URL相关联的所有元素:

你应该绑定事件图片,脚本,框架,内部框架,和窗口对象到文件加载。这个简单的快捷方式是$(function() {...}),像这样:

$(function() { 
    $('ul li').each(function() { 
     $(this).css('background', 'url(assets/images/clients/logo/'+ this.id +'.jpg)'); 
    }); 
});