0

私のワードプレスサイトの functions.php には、jquery を呼び出す次のコードがあります。

    function my_scripts_method() {
    wp_deregister_script( 'jquery' );
    wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js');
    wp_enqueue_script( 'jquery' );
}    

add_action('wp_enqueue_scripts', 'my_scripts_method');

ただし、このコードは次の jquery コードと競合します。

$(function() {
    $('#menu > li').hover(
        function () {
            var $this = $(this);
            $('a',$this).stop(true,true).animate({
                    'bottom':'-55px'  /* para não elevar muito o separador*/
                }, 300);
            $('i',$this).stop(true,true).animate({
                    'top':'-10px'
                }, 400);
        },
        function () {
            var $this = $(this);
            $('a',$this).stop(true,true).animate({
                    'bottom':'-130px'  /* para baixar o separador para o sitio original*/
                }, 300);
            $('i',$this).stop(true,true).animate({
                    'top':'50px'
                }, 400);
        }
    );
});

ページの先頭で直接http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.jsを呼び出すと、プラグインが機能するため、これが問題であると確信しています。同じページ上の他のjqueryプラグインとの問題を避けるために、jquery.noConflictの使用を避けようとしています。

ヒントはありますか?

4

2 に答える 2

0

スクリプトはどこにロードしますか?

フッターにある場合は、次のことを試してください。

    (function($) {
    $('#menu > li').hover(
        function () {
            var $this = $(this);
            $('a',$this).stop(true,true).animate({
                    'bottom':'-55px'  /* para não elevar muito o separador*/
                }, 300);
            $('i',$this).stop(true,true).animate({
                    'top':'-10px'
                }, 400);
        },
        function () {
            var $this = $(this);
            $('a',$this).stop(true,true).animate({
                    'bottom':'-130px'  /* para baixar o separador para o sitio original*/
                }, 300);
            $('i',$this).stop(true,true).animate({
                    'top':'50px'
                }, 400);
        }
    );
})( jQuery );

ヘッダーにある場合は、次のことを試してください。

jQuery(document).ready(function( $ ) {  
    $('#menu > li').hover(
        function () {
            var $this = $(this);
            $('a',$this).stop(true,true).animate({
                    'bottom':'-55px'  /* para não elevar muito o separador*/
                }, 300);
            $('i',$this).stop(true,true).animate({
                    'top':'-10px'
                }, 400);
        },
        function () {
            var $this = $(this);
            $('a',$this).stop(true,true).animate({
                    'bottom':'-130px'  /* para baixar o separador para o sitio original*/
                }, 300);
            $('i',$this).stop(true,true).animate({
                    'top':'50px'
                }, 400);
        }
    );
});
于 2012-07-11T05:04:42.660 に答える
0

うまくいったことをうれしく思いますが、wp_enqueue を使用する方がはるかに優れています。

この記事をチェックしてくださいhttp://digwp.com/2009/06/include-jquery-in-wordpress-the-right-way/

「$」セレクターを「jQuery」に置き換えることもできます。Wordpress にはコアの一部として多数のライブラリが含まれており、$ は jQuery 以外にも使用されます。

于 2012-07-11T13:30:14.950 に答える