意外的标识符 - 函数的工作原理

时间:2013-09-30 13:44:03

标签: jquery

我正在尝试创建一个小的简单jquery函数,但我无法理解如何解决这个问题,并且无法在线找到简单的资源,在哪里阅读如何使用两个变量创建简单函数。 我的代码是

jQuery(function ($) {
    function infoText(menuitem,textinfo) {
        menuitem.click(function(){
            textinfo.fadeIn(300);
        }
    }

    infoText('.come-realizzo','#come-realizzo');
    infoText('.works','#works');

});

当我调用该函数时,我收到此错误:

  

Uncaught SyntaxError:9行上的意外标识符(   信息文本( '来-realizzo', '#来-realizzo'); )。

谢谢!

3 个答案:

答案 0 :(得分:2)

您正在传递一个字符串,您需要使用$(/*selector*/)将它们转换为jquery对象,如下所示

更改

menuitem.click(function () {
  textinfo.fadeIn(300);
}

$(menuitem).click({
  $(textinfo).fadeIn(300);
});
 ^ missing to close the click function

答案 1 :(得分:0)

您正在传递字符串而不是标识符,请使用以下代码

infoText($('.come-realizzo'),$('#come-realizzo') );

如果您想将文本而不是选择器传递给函数

,请使用其他解决方案
  $( menuitem).click(function(){
  $( textinfo).fadeIn(300);

答案 2 :(得分:0)

您在点击处理程序功能结束时缺少结束语。

您实际无法工作,因为您没有在infoText函数中引用jQuery对象,这是两种可能的解决方案:

  • 将jQuery对象传递为params
  • 来自传递的字符串获取jQuery对象

首先:

jQuery(function ($) {
    function infoText($menuitem,$textinfo) {
        $menuitem.click(function(){
            $textinfo.fadeIn(300);
        });
    }

    infoText($('.come-realizzo'),$('#come-realizzo'));
    infoText($('.works'),$('#works'));

});

第二

jQuery(function ($) {
    function infoText(menuitem,textinfo) {
        $(menuitem).click(function(){
            $(textinfo).fadeIn(300);
        });
    }

    infoText('.come-realizzo','#come-realizzo');
    infoText('.works','#works');

});