我有一个查询,当鼠标悬停在图像上时对列表项的文本进行更改,我在查询中放置了一个事件目标:
$('img').on('mouseover', function(){
// I would like an Id of a text instead of the 'li'
$('li').css('text-decoration', 'underline');
});
$('img').on('mouseout', function(){
$('li').css('text-decoration', 'none');
});
但我希望将其更改为仅应用于与图像具有相同ID的项目:
s[i++] = '<li id=\"'+ vizList[j].name +'\">';
s[i++] = '<a>'+ vizList[j].name + '</a>';
s[i++] = '<img id=\"'+ vizList[j].name +'\" src="../renderer/bundles/' + vizList[j].icon + '" width="268" height="120" style="display:block"/>';
s[i++] = '</li>';
答案 0 :(得分:5)
以下代码是您所期望的吗?
$('img').on('mouseover', function(event){
$(event.target).closest('li').css('text-decoration', 'underline');
});
$('img').on('mouseout', function(event){
$(event.target).closest('li').css('text-decoration', 'none');
});
答案 1 :(得分:4)
首先,ID应该是唯一的,因此要么使它们略有不同,要么使用类。
将$('li')
选择器更改为$(this).find('li')
。这应该在悬停的li
您还可以使用.hover
功能将其转换为一个电话:
https://jsfiddle.net/juk41yLs/1/
$('img').hover(
function() {
$(this).parent('li').css('text-decoration', 'underline');
},
function() {
$(this).parent('li').css('text-decoration', 'none');
}
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li>
Hover over this >
<img src="http://placehold.it/350x150">
</li>
</ul>
答案 2 :(得分:0)
我假设您想要在鼠标悬停在li
之上时更改img
包含的img
。然后你应该这样做:
$('img').on('mouseover', function(event){
$(this).parent().css('text-decoration', 'underline');
});
答案 3 :(得分:-1)
$('img').on('mouseover', function(event){
// I would like an Id of a text instead of the 'li'
var imgId = event.target.id;
$('#' + imgId).css('text-decoration', 'underline');
});
&#13;