0

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();
});

});

这是行不通的。我试过只放 alert("j"); 在文件中,并且可以正常工作,因此正确包含了该文件。我怎样才能解决这个问题?

4

4 回答 4

4

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

例如:

jQuery(document).ready(function() {

});

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

于 2012-10-19T10:25:37.107 回答
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 独有的函数。

于 2012-10-19T10:13:29.100 回答
0

由于@Calle 指定的原因,这应该对您有用,因此 jQuery 被传入 as$并且后续使用应该正常工作。

(function($){ $(function(){
   // Your code here...
}) })(jQuery);
于 2012-10-19T10:31:43.517 回答
0
jQuery(document).ready(function($) {
    // Here you can use $ as normal
});
于 2012-10-19T11:01:28.430 回答