Как вызвать исходную функцию jQuery, если функции jQuery переопределены другим скриптом?

#javascript #jquery #oop #inheritance #prototype

#javascript #jquery #ооп #наследование #прототип

Вопрос:

Я работаю над веб-сайтом в качестве поставщика, и javascript сайта переопределяет функции jQuery, такие как «пустой», «текст», «добавить» и т.д. Что-то вроде :

 jQuery.fn.extend({
  text: function(value) {...},
  empty: function(value) {...},
...
})
  

Теперь моя библиотека javascript использует тот же jQuery и использует эти функции jQuery. Из-за этого эти функции jQuery ведут себя ненормально в моей библиотеке.

Есть ли способ предотвратить вызов этих функций и вместо этого использовать исходные функции jquery.

PS: Я не хочу снова включать библиотеку jQuery.

Комментарии:

1. Я думаю, тогда вам не повезло. Без повторной загрузки библиотеки вы обречены использовать эти функции, если вы не переопределите реализацию jQuery. Вы сказали, что являетесь поставщиком, поэтому об этом и просьбе отменить то, что они сделали, также не может быть и речи. Тогда мой совет — использовать чистый javascript. В конечном итоге вам будет намного лучше как поставщику с этим набором навыков.

2. «PS: я не хочу снова включать библиотеку jQuery». Я думаю, это ваш лучший выбор, с noConflict .

3. Это то, что я подумал. В настоящее время моя библиотека использует jQuery, и превращение ее в чистый javascript также не представляется решением со временем, которое у меня есть. В худшем случае мне, вероятно, придется снова загрузить библиотеку.

4. Может быть, iframe хорошо спасет вас.

5. Что именно вы подразумеваете под «как поставщик»? У вас есть только три варианта: а) не использовать jQuery б) добавить свой собственный jQuery, упакованный в вашу библиотеку в) потребовать, чтобы совместимый jQuery загружался перед вашей библиотекой. Тот, кто использует вашу библиотеку, не соблюдает c), и это его вина, а не ваша. Вы можете предложить им помощь в устранении их проблемы, которая нарушает jQuery, или выбрать другой подход.