JQuery. Неконфликтный выпуск - PullRequest
0 голосов
/ 30 июня 2009

У меня есть проблема, которую я просто не могу решить, и она сводит меня с ума. Я использую библиотеку jQuery и использую ".noconflict".

Я пытаюсь использовать это в своем блоге со следующим скриптом -

http://www.internetmarketingmonitor.org/word-press-plugins/imm-glossary-wordpress-plugin

Проблема в том, что я получаю следующую ошибку -

>  [Exception... "Component returned failure code: 0x80070057
> (NS_ERROR_ILLEGAL_VALUE) [nsIDOMXPathEvaluator.evaluate]"  nsresult:
> "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame ::http://myblog.com/wp-content/plugins/IMM-Glossary/JavaScripts/prototype.js
> :: anonymous :: line 1081"  data: no]
> Source:http://myblog.com/wp-content/plugins/IMM-Glossary/JavaScripts/prototype.js

Что не имеет смысла, так это Я ИСПОЛЬЗУЮ .NOCONFLICT? - Ошибка может быть легко воспроизведена, просто загрузив этот плагин и поместив * .js на ту же страницу, что и jquery?

Кто-нибудь сможет помочь?

Ответы [ 4 ]

5 голосов
/ 30 июня 2009

Я посмотрел на источник, но сейчас не вижу jQuery на странице.

Исходя из вашего комментария к исходному вопросу, похоже, что вы не активируете функцию noConflict. Вам нужно сделать что-то похожее на это.

<script type="text/javascript" src="path/to/jquery.js"></script>
<script type="text/javascript">
    jQuery.noConflict();
</script>

Вы заметите, что вызов jQuery.noConflict не обернут в какую-либо проверку готовности DOM. Вы хотите запустить его сразу после включения jQuery, чтобы быть в безопасности.

2 голосов
/ 30 июня 2009

$ используется и другими структурами javascript. Поэтому, когда у вас их два, возникает проблема. jQuery прекрасно работает с другими фреймворками, вам просто нужно вызвать функцию noConflict:

<script type="text/javascript" src="..."/>
<script type="text/javascript">
  jq=jQuery.noConflict();
</script>

теперь вы можете вызывать функции jquery, используя псевдоним, который вы создали выше:

 <script type="text/javascript">
    jq(document).ready(function(){alert(jq);});
 </script>
1 голос
/ 18 января 2011

Я нашел немного альтернативный метод исправления моих конфликтов jquery, который, я надеюсь, может помочь другим.

Как и на этой странице я сделал

JQ = jQuery.noConflict (истина);

Просто после вызова jquery.min.js. Тогда я сделал

JQ = jQuery.noConflict (ложь);

после моего фактического сценария, чтобы заставить lavalamp моей страницы работать. Теперь и моя лавалампа и боковая навигация (которая вызывала конфликт jquery) ладят. :)

Возможно, ленивый способ обмана, но я все еще учусь здесь! хехе

0 голосов
/ 01 июля 2009

Спасибо за ответ. Ответ на самом деле был найден

http://docs.jquery.com/Using_jQuery_with_Other_Libraries#Including_jQuery_before_Other_Libraries

По сути, когда это происходит - мне нужно сначала включить JQuery-скрипт в мой список скриптов - это было основной проблемой. Когда jQuery не был первым скриптом - он генерировал ошибку - независимо от способа, которым я вызываю функцию .noconflict.

По сути, сценарий jquery должен быть первым вызванным сценарием, чтобы избежать связанных конфликтов.

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