包含jQuery,但jQuery代码未执行

时间:2012-10-19 10:04:52

标签: jquery wordpress

jQuery包含在文件中,如下所示:

wp_enqueue_script("jquery");

我有一个看起来像这样的jQuery文件:

$(function() {
alert("j");

$('.event-wrapper a').click(function(){
    event.preventDefault();
    if($(this).next().is(':visible')) {
        $(this).next().hide();
    } else {
        $('.event-info').hide();
        $(this).next().show();
    }
});

$('.event-info').click(function() {
    $(this).hide();
});

});

这不起作用。我试过只放警报(“j”);在文件中,这样可以正确包含文件。我该如何解决这个问题?

4 个答案:

答案 0 :(得分:4)

Wordpress使用jQuery.noConflict自动调用jQuery,这意味着$被删除以避免命名空间冲突。在Wordpress中使用jQuery时,应始终使用jQuery而不是$。

例如:

jQuery(document).ready(function() {

});

为了获得$ back,您可以使用此处描述的快捷方式(以及其他答案):http://docs.jquery.com/Using_jQuery_with_Other_Libraries

答案 1 :(得分:0)

我不确定你要做什么,但你的jQuery主函数应该这样开始:

        $(document).ready(function () {
            //your jquery code should go here
        });

如果您正在尝试创建一个可以在html元素上调用的jquery函数,它应该声明为:

        (function ($) {
            $.fn.myFunc = function (options) {

             //Your code goes here
            }
        })(jQuery);

将直接在javascript中从对象调用:

        $('#SomeHtmlElementID').myFunc(myArgs);

此外,无论是否使用jQuery,您的警报都将起作用,因为它是一个javascript函数,而不是jQuery独有的函数。

答案 2 :(得分:0)

由于@Calle指定的原因,这应该对你有用,所以jQuery作为$传入,后续使用应该正常工作。

(function($){ $(function(){
   // Your code here...
}) })(jQuery);

答案 3 :(得分:0)

jQuery(document).ready(function($) {
    // Here you can use $ as normal
});