在函数内部,我使用JQuery创建此链接:
var link = $('<a />')
.attr('href', 'linktarget.htm')
.text('Link');
link.on('mouseover', showDefectMapIcon(this, row.id));
当用户悬停链接时,应替换图像:
function showDefectMapIcon(el, id) {
console.log(el);
$(el).next('span.info').find('img')
.attr('src', '/defectmap.php?id='+ id);
}
然而它不起作用,因为el引用了调用周围函数的td元素,而不是a元素。
我还尝试了showDefectMapIcon(link, row.id)
和showDefectMapIcon.call(link, this, row.id)
如何以这种方式将$('<a />')
对象传递给函数,我可以使用$(el).next('span.info')
在函数内部使用它?
答案 0 :(得分:3)
首先,在您的情况下,当您在事件上执行代码时调用回调(showDefectMapIcon
)...您正在调用函数showDefectMapIcon
而不是将其作为回调传递
link.on('mouseover', function () {
showDefectMapIcon(this, row.id)
});