Подтвердить что ты не робот

Замените "$" (знак доллара) на "JQuery"

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

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

            });
4b9b3361

Ответ 1

Это связано с тем, что 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");
        });

    });

Ответ 2

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