Плагин jQuery «Фрагмент» не может быть вызван дважды для одного и того же элемента - PullRequest
0 голосов
/ 16 января 2011

Что ж, я создаю онлайн-редактор исходного кода и использую Snippet, плагин jQuery, для подсветки. Итак, на данный момент у меня есть textarea и элемент pre, куда я копирую значение textarea в pre для каждого keyup ... Поэтому я вызываю функцию .snippet (), для document.ready () и для каждого keyup в Для того, чтобы сделать подсветку синтаксиса. Но я заметил, что это не сработает, когда я вызываю его более одного раза для одного и того же элемента. Проверьте мой код здесь: http://jsfiddle.net/parisk/YkNMh/. (он не будет работать с keyup, потому что я однажды вызвал его для document.ready (), если вы отключите вызов для готового документа, он будет работать только с первым keyup ) ... И мне бы очень хотелось решить эту проблему. Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 26 января 2014

У меня возникла та же проблема, попробуйте ошибка catch: TypeError: $ .browser не определен. Поэтому после некоторого чтения в JQuery оказывается, что $ .browser удален в JQuery 1.9 и выше.

Чтобы исправить, добавьте это после ссылки JQuery (плагин переноса):

<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script>

Проблема решена, надеюсь, это кому-нибудь поможет!

0 голосов
/ 16 января 2011

Плагин сниппета оборачивает элемент pre <div>, а также добавляет к нему класс в зависимости от выбранного стиля кода.

Очевидно, что они используют их, чтобы проверить, был ли элемент уже фрагмент 'ed.

Вам нужно будет отменить эти изменения, и простое решение в вашем случае это изменить

$('pre').snippet("c",{style:"the",showNum:true});

до

$('pre').removeClass().unwrap().snippet("c",{style:"the",showNum:true});

пример на http://jsfiddle.net/gaby/Kpphx/

...