2013-07-05 54 views
0

我工作的一个WordPress站点和启动一些简单的sqripts:

(function() { 
    // Flex 
    if ($(".flexslider").length) { 
     $('.flexslider').flexslider(); 
    } 
})(jQuery); 

我也试过

$(function() { 
    // Flex 
    if ($(".flexslider").length) { 
     $('.flexslider').flexslider(); 
    } 
}); 

jQuery的运行,那么为什么不$认可?如果我用jQuery替换$,它工作正常。

这也是不工作:

jQuery(document).ready(function() { 

    $('.section_header').click(function(){ 
     alert('test'); 
    }); 
}); 
+0

你有一些源代码可以看吗? – putvande

+0

您是否正在使用其他库,如prototype.js? –

+0

是的,这是上面的代码....我只使用jQuery。 – Steven

回答

5
(function ($) { 
     // Flex 
     if ($(".flexslider").length) { 
      $('.flexslider').flexslider(); 
     } 
    })(jQuery); 

尝试此

顶部参数是将被用作在底部一个

因此,例如参考所述一个你可以做到这一点

(function (somethingHereCool) { 
    // Flex 
    if (somethingHereCool(".flexslider").length) { 
     somethingHereCool('.flexslider').flexslider(); 
    } 
})(jQuery); 

发生这种情况(主要是在WordPress)的原因是因为WordPress使用jQuery的$.noConflict() 通过Defualt

所以这基本上意味着,$不属于jQuery的了,所以,你可以不喜欢它上面并重新定义了$您可以使用的范围。你基本上复制jQuery并给它$

+0

查看我更新的问题。传统的jQuery功能也不起作用。 – Steven

+0

我使用'($)'进行了测试,但这不起作用。我没有得到任何错误,但jQuery没有被触发。 – Steven

+0

重要的是要知道,WordPress自带的jQuery版本会自动调用jQuery.noConflict();功能。就像我现在提到几次..... – rlemon

0

$在jQuery中有不同的含义/功能。在我的.jsp文件中创建jQueries时,我注意到了这一点。我不确定$的设计是什么,但我在美元的地方使用jQuery

+0

像许多库一样, $用作[非知名变量名称](http://en.wikipedia.org/wiki/Self-documenting) – SpYk3HH

+0

'$'是'jQuery'的缩写,但如果您使用的是不同的库,这就是为什么使用'jQuery'更好,但使用'$'保存字符... – Steven

+0

是的,我了解到$是一个jstl变量定义者,因为你可以在jsp文件中使用jQuery,所以必须声明我相信如果你在一个使用html/jsp或类似的wordpress站点中使用它,美元有不同的含义 – ghoulfolk

0

在WordPress的

jQuery(function($) { 
//code in here 
}); 
0

我下面的作品要添加到什么Connor said in his answer,这基本上是你需要的$作为传递参数的功能,以使用$jQuery

它不是默认的原因,是因为jQuery提供了一个选项disable$。当你使用一个不同的JS框架时,这个主要用于使用它自己的$变量的实现,所以不会产生冲突。

禁用使用$的jQuery。您需要编写以下内容,最好在导入jQuery库之后直接编写。在导入任何其他框架之前还应该导入其中。

jQuery.noConflict(); 
+0

顺便说一句 - 它的“Connor”:) – iConnor

+0

@Connor对不起,修正:) – Dan

+0

phew ...谢谢。 。 。 。 – iConnor

相关问题