有几个问题:
1. 选择器
只需在脑海中进行字符串替换即可。如果您要传递#main
给您的函数,那么您的选择器最终看起来像这样:
$("'#main>#one'")...
注意'
里面的字符。现在,如果你删除'
字符,你会得到:
$("#main>#one")...
...这意味着“具有 的id
"one"
元素是具有id
"main"
。现在可以使用,但它表明您对多个元素使用相同的id
( )。您不能在 HTML 中这样做。"one"
你的id="one"
和id="two"
元素可能应该有class="one"
and class="two"
,如果是这样,您的代码应该如下所示:
function myFunction(a)
{
$(a+">.one").stop(true, true).animate({left:'30px'},1100);
$(a+">.two").stop(true, true).animate({left:'30px'},1100);
}
2. 功能
在您的代码调用中 myFunction
中:
$("#main").mouseleave(myFunction("#main")); // <== Wrong
...您myFunction
立即调用并将其返回值传递给mouseleave
. 由于它没有明确的返回值,因此您最终会undefined
进入mouseleave
,这不会做任何有用的事情。
如果您的目标myFunction
是在mouseleave
,则传入一个函数引用:
$("#main").mouseleave(function() {
myFunction("#main");
});
可能值得从您当前的任务中退后一步,学习一些基本的 jQuery(和 JavaScript)教程,以巩固您对其中一些概念的理解,例如id
s 是唯一的、将函数作为事件处理程序传递、字符串连接等。