我试图将一个变量传递给内联的jQuery函数(即:在实际链接中使用onMouSEOver =“function();”(这是图像映射中的区域标记)).
只有在我将它放在$(document).ready(function(){line之前,才会调用该函数,但这样做会导致jQuery出现各种问题.
我想要的只是一个简单的标签(例如< area shape =“circle”coords =“357,138,17”onMouseOver =“change('5');”id =“5”/>来启动一个函数包含在正常的jQuery代码体中.
非常感谢您提供的任何帮助.
为了说明这一点,以下工作:
SEOver="myfunction('2')">
最佳答案
在你的第二个例子中,你已经在你传递给.ready()的匿名函数中声明了myfunction.这意味着myfunction是一个局部变量,它只在匿名函数的范围内,你不能从其他任何地方调用它.
有两种解决方案.
首先,您可以在调用.ready()之外(之前或之后)声明它.这不应该对jQuery造成任何干扰.如果确实如此,那么其他错误(可能是一个简单的语法错误?)我们欢迎您提出StackOverflow问题.
其次,你不应该使用onMouSEOver =“”来附加事件处理程序(因为它将JavaScript与HTML混合在一起),所以让我们完全废除它.用以下内容替换您的JavaScript:
$(document).ready(function() {
$("#that-area-down-there").mouSEOver(function() {
alert(2);
});
});
你的HTML用这个:
(当然,您可能希望用上下文中更有意义的内容替换该ID.)