有几个问题:
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)教程,以巩固您对其中一些概念的理解,例如ids 是唯一的、将函数作为事件处理程序传递、字符串连接等。