我有一个页面,其中产品及其图像被加载到一个表中。图像最初是隐藏的,并且onmouseover我想显示图像。图像在div标签内,productname显示为链接。在onready函数中,我将事件处理程序附加到链接
$('a').each(function()
{
if( $(this).attr('id').match(/prod/))
{
$(this).mouseover(display());
}
});
并在eventhandler(一个名为display的函数)中调用
function display()
{
$('div').each(function()
{
if( $(this).attr('id').match(/sx/))
{
alert("hi")
}
});
}
但是,我收到错误$(“div”)为空
HTML是:
<table>
<tr><td><a href="link">product name</a></td>
<td><div class='.hidden'><table><tr><td><img src=""></img></td></tr></table></div></td></table>
答案 0 :(得分:2)
替换
$(this).mouseover(display());
与
$(this).mouseover(display);
您的代码正在执行函数display()
并将其返回值传递给mouseover
。但是你需要传递一个函数引用。
答案 1 :(得分:0)
使显示功能匿名,就像你在其余的yoru代码中所做的那样:
$('a').each(function()
{
if( $(this).attr('id').match(/prod/))
{
$(this).mouseover(function() {
$('div').each(function()
{
if( $(this).attr('id').match(/sx/))
{
alert("hi")
}
});
});
}
});
修改强>
关于$("div")
为空,您能否进一步澄清。你能跟我说一下以下内容:
var obj = $("div"); //is obj null?
alert($("div").length); //do you get a number? If so, what is it?