Недавно я взял у кого-то код и у меня возникла проблема (больше раздражения), которой я никогда раньше не сталкивался. Это также трудно исследовать.
В основном этот человек использовал jQuery для выбора элементов управления, а не сокращенной версии $
. Например
jQuery("#controlid").val();
используется вместо
$("#controlid").val();
Последний разрывает любой скрипт jQuery, который я создаю, используя стенографию $
.
Кто-нибудь испытал что-то подобное раньше? Может быть, что-то маленькое, что мне нужно изменить, чтобы эта досада исчезла?
Заранее спасибо.
Решение # 1: jQuery.noConflict()
Многие библиотеки JavaScript используют $ как функцию или имя переменной, как это делает jQuery. В случае jQuery, $ является просто псевдонимом для jQuery, поэтому все функции доступны без использования $. Если вам нужно использовать другую библиотеку JavaScript вместе с jQuery, верните управление $ обратно в другую библиотеку с вызовом $.noConflict(). Старые ссылки $ сохраняются во время инициализации jQuery; noConflict() просто восстанавливает их.
$.noConflict();
// Code that uses other library $ can follow here, not jQuery
Решение №2: $
Alias
// Option #1, Document Ready Event
jQuery(function($) {
// Code that uses jQuery $ can follow here.
});
// Option #2, Anonymous Invocation
(function($) {
$(function() {
// More code using $ as alias to jQuery
});
})(jQuery);
Причина в том, что сценарий загружается после jQuery, который использует $
как псевдоним для себя, что приводит к тому, что он больше не принадлежит jQuery.
var $ = jQuery
или $.noConflict();
поверх каждого нового сценария, который я создаю.
$.noConflict();
в дополнение к одному из сценариев, который я написал ранее. Спасибо за помощь, я действительно ценю это :)
var $ = jQuery
решит вашу проблему?