在WordPress $中调用jQuery不是函数

时间:2017-02-15 22:19:25

标签: jquery wordpress

这对我来说以前工作正常,但我认为有些东西改变了jQuery在WordPress中的排队方式。

$(document).ready(function () {

$('#dialog-modal').dialog({
    modal: true,
    autoOpen: false,
    closeOnEscape: false,
    bgiframe: true,
    title: 'Please Confirm',
    buttons: {
            "Ok!": function() {
                    $(this).dialog("close");
            }
    }
}); 

$("[name='records']").on('change',function(e){
var selectedValue = $(this).val();
if(selectedValue==2) {

        $('#dialog-modal').dialog('open');
    }
});

});

我的控制台显示:

未捕获的TypeError:$不是函数

我引用了这个问题:

TypeError: $ is not a function when calling jQuery function

但我仍然不知道如何正确包装。

2 个答案:

答案 0 :(得分:0)

你将$分配给jQuery:

/**
 *
 * Description
 *
 */

( function( window, $, undefined ) {

    'use strict';


    $( document ).ready( function(  ) {

        //what is this                                               
        $('#dialog-modal').dialog({
            modal: true,
            autoOpen: false,
            closeOnEscape: false,
            bgiframe: true,
            title: 'Please Confirm',
            buttons: {
                "Ok!": function() {
                    $(this).dialog("close");
                }
            }
        } ); 


        // what is this
        $("[name='records']").on('change',function(e){
            var selectedValue = $(this).val();
            if(selectedValue==2) {

                $('#dialog-modal').dialog('open');
            }
        } ); 



    } ); //* end ready


} )( this, jQuery );

答案 1 :(得分:0)

尝试 jQuery 而不是 $ 。 Wordpress通常将其重新命名为jQuery

这样:

jQuery(document).ready(function () {

jQuery('#dialog-modal').dialog({
    modal: true,
    autoOpen: false,
    closeOnEscape: false,
    bgiframe: true,
    title: 'Please Confirm',
    buttons: {
            "Ok!": function() {
                    jQuery(this).dialog("close");
            }
    }
}); 

jQuery("[name='records']").on('change',function(e){
var selectedValue = $(this).val();
if(selectedValue==2) {

        jQuery('#dialog-modal').dialog('open');
    }
});

});

我希望这有效,