#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, или выбрать другой подход.