当我将鼠标悬停在通过按钮功能添加的表行上时,如何更改列中的图像
How do I change an image from a column when I hover over a table row that was added via a button function?
当我将鼠标悬停在通过按钮功能添加的表行上时,如何更改列中的图像?
以下是我当前的代码,当我将鼠标悬停在该行上时,它不起作用。
这是我在表中添加一行的函数
function addrow()
{
var table=document.getElementById("tablelist");
var row=table.insertRow(-1);
var cells = new Array();
for(var i = 0; i < 6;i++)
{
cells[i]=row.insertCell(i);
cells[i].innerHTML="New";
}
cells[6]=row.insertCell(6);
cells[6].innerHTML='<img src="images/pencil-black.png"></img><img src="images/lock-black.png"></img><img src="images/bin-black.png"></img>';
}
jquery:
$(document).ready(function(){
$(".userbox td").hover(function() {
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-black.png', '-white.png'));
}, function() {
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-white.png', '-black.png'));
});
});
当document.ready
正在运行时,addrow()
函数添加的元素还不存在于DOM中。
使用jQuery on
:
$(".userbox").on({
mouseenter: function() {
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-black.png', '-white.png'));
},
mouseleave: function() {
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-white.png', '-black.png'));
}
}, 'td');
或者,您可以在创建元素时绑定事件:
var tdOnMouseOver = function()
{
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-black.png', '-white.png'));
}
var tdOnMouseOut = function()
{
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-white.png', '-black.png'));
}
function addrow()
{
var table=document.getElementById("tablelist");
var row=table.insertRow(-1);
var cells = new Array();
for(var i = 0; i < 6;i++)
{
cells[i]=row.insertCell(i);
cells[i].innerHTML="New";
cells[i].onmouseover = tdOnMouseOver;
cells[i].onmouseout = tdOnMouseOut;
}
cells[6]=row.insertCell(6);
cells[6].innerHTML='<img src="images/pencil-black.png"></img><img src="images/lock-black.png"></img><img src="images/bin-black.png"></img>';
}
UPDATE(因为您使用的是jQuery 1.6):
使用jQuery live
:
$(".userbox td").live({
mouseenter: function() {
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-black.png', '-white.png'));
},
mouseleave: function() {
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-white.png', '-black.png'));
}
});
使用$('#tablelist').on('mouseover mouseout','img',function(e){})
您需要将委托事件用于动态添加元素上的事件:
$(document).ready(function(){
$(".userbox").on({
mouseenter: function() {
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-black.png', '-white.png'));
},
mouseleave: function() {
var $img = $(this).find("img");
$img.attr("src", $img.attr("src").replace('-white.png', '-black.png'));
}, 'td');
});
});
相关文章:
- Javascript将图像src更改为淡入淡出
- 如何使图像自动更改
- 鼠标悬停时AngularJS图像源更改
- 如何检测移动浏览器(PHP/Javascript),然后进行图像/文本更改
- jquery ui按钮图像没有更改
- 图像宽度:更改父块高度后的自动和最大高度
- Nivo 滑块 URL 不会随图像而更改
- 使用单击图像映射更改设置为背景的精灵图像的位置
- 如何在单击 SVG 用作背景图像时更改其填充颜色
- 使用 jQuery 预览图像,更改悬停图像大小
- 点击图像部分 图像应该更改
- 选择“更改”时,“背景图像”会更改
- 更改图像属性更改时的不透明度
- CSS / JavaScript过渡:如果图像快速更改,我的CSS过渡不适用于图库
- 单击图像时背景图像会更改
- 将背景图像序列更改为spritesheet
- 如何使用JavaScript在每次点击图像时更改图像标签的URL
- JavaScript中有没有一种方法可以在解析HTML时在浏览器加载图像之前更改图像路径
- 单击图像时更改段落文本(Javascript)
- 在PopupPanel中添加图像和更改文本字体大小无效