Как решить конфликты jQuery в IE с помощью jQuery.noConflict ()? - PullRequest
1 голос
/ 04 марта 2011

У нас есть сайт, который мы хотели бы, чтобы наши клиенты встраивали в свои сайты с помощью iFrame. К сожалению, он работает в любом браузере, кроме убогого IE 6, 7 и 8.

Проблема в том, что мы получаем:

Объект не поддерживает это свойство или метод.

при первом упоминании $ в нашем jQuery. Мы знаем, почему это происходит, по-видимому, это связано с конфликтами с существующей библиотекой JS на сайте нашего клиента. Однако мы не знаем, как это исправить.

Это приложение Rails 3, использующее jQuery 1.4.2. Мы не знаем , где , чтобы позвонить jQuery.noConflict(). Кроме того, мы не понимаем, что это будет делать с многочисленными плагинами jQuery, которые мы делаем. Кто-нибудь может предложить какое-либо понимание?

Ответы [ 3 ]

2 голосов
/ 04 марта 2011

noConflict() отказывается от управления $, чтобы другие библиотеки могли его использовать.

Я бы обернул весь ваш код jQuery этим кодом.

  $.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
  });

Это эффективнопередайте $ обратно к вашей функции готовности, чтобы вы могли использовать ее так, как вы ожидаете.

0 голосов
/ 04 марта 2011

1

$something=jQuery.noConflict();

now $something becomes $, 

Например:

$j=jQuery.noConflict();
$j('#anElement').addClass('red');

2 Для работы с плагинами, используя все плагины, используйте jQuery вместо $

если какой-либо плагин использует $, чем к этому

//your plugin file
(function(){
$=jQuery;
})();
0 голосов
/ 04 марта 2011

Поставьте jQuery.noConflict(); в качестве вашего первого оператора JS, который запускается на странице (после загрузки ваших библиотек).

например,

$(document).ready(function() {
   jQuery.noConflict();
 });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...