访问JQuery对象,在函数内部调用事件

时间:2014-10-14 09:42:36

标签: javascript jquery this

在函数内部,我使用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')在函数内部使用它?

1 个答案:

答案 0 :(得分:3)

首先,在您的情况下,当您在事件上执行代码时调用回调(showDefectMapIcon)...您正在调用函数showDefectMapIcon而不是将其作为回调传递

link.on('mouseover', function () {
    showDefectMapIcon(this, row.id)
});