Замените "$" (знак доллара) на "JQuery" - PullRequest
51 голосов
/ 19 июля 2011

1-й фрагмент не работал.Однако он начинает работать при замене всех $ (знак доллара) на jQuery (см. 2-й фрагмент).Но я не понимаю почему?Кто-нибудь может мне это объяснить?Большое спасибо!

1-й фрагмент

jQuery.noConflict();
               $(document).ready(function(){    
                    $("#insideTable > tbody > tr:odd").addClass("odd");
                    $("#insideTable > tbody > tr:not(.odd)").hide();
                    $("#insideTable > tbody > tr:odd").show();
                    $("#insideTable > tbody > tr.odd").click(function(){
                        $(this).next().toggle();
                        $(this).find(".arrow").toggleClass("up");
                    });

                });

2-й фрагмент

        jQuery.noConflict();
        jQuery(document).ready(function(){

                jQuery("#insideTable > tbody > tr:odd").addClass("odd");
                jQuery("#insideTable > tbody > tr:not(.odd)").hide();
                jQuery("#insideTable > tbody > tr:odd").show();
                jQuery("#insideTable > tbody > tr.odd").click(function(){
                    jQuery(this).next().toggle();
                    jQuery(this).find(".arrow").toggleClass("up");
                });

            });

Ответы [ 2 ]

95 голосов
/ 19 июля 2011

Это потому, что jQuery.noConflict() "освобождает" "$" от связи с jQuery. Обычно в вашем коде вы можете использовать $ вместо «jQuery». Если вы используете noConflict(), вы больше не можете этого делать, поэтому вам нужно заменить каждый "$" на "jQuery"; ,

Многие библиотеки JavaScript используют $ как имя функции или переменной, просто как делает jQuery. В случае jQuery $ - это просто псевдоним для jQuery, поэтому все функции доступны без использования $. Если нам нужно использовать другая библиотека JavaScript наряду с jQuery, мы можем вернуть контроль над $ обратно в другую библиотеку с вызовом $ .noConflict ():

вы также можете создать совершенно новый псевдоним для использования

var myJqueryAlias = jQuery.noConflict();
myJqueryAlias(document).ready(function(){

        myJqueryAlias("#insideTable > tbody > tr:odd").addClass("odd");
        myJqueryAlias("#insideTable > tbody > tr:not(.odd)").hide();
        myJqueryAlias("#insideTable > tbody > tr:odd").show();
        myJqueryAlias("#insideTable > tbody > tr.odd").click(function(){
            myJqueryAlias(this).next().toggle();
            myJqueryAlias(this).find(".arrow").toggleClass("up");
        });

    });
11 голосов
/ 19 июля 2011

Вызов noConflict () удаляет связь между $ и функцией jQuery.Это сделано для того, чтобы вы могли использовать другую библиотеку JavaScript, которая также сокращается до $ без конфликтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...