Я использую программу для опроса, которая дает (некоторую) свободу при программировании ваших собственных пользовательских функций / дизайна / и т.д. По умолчанию он использует Prototype. Я тоже хочу использовать jQuery. В заголовке я объявляю jQuery и вызываю noConflict, вот так:
<script src="SurveyResource/jquery.js"> </script>
<script>
jQuery.noConflict();
</script>
Когда я пытаюсь загрузить страницу, я получаю классическую ошибку «Объект не поддерживает это свойство или метод». Я также попытался удалить сценарий noConflict, и ошибка по-прежнему происходит только с объявлением. После быстрой отладки я обнаружил, что ошибка происходит в prototype.js, в этой функции:
fire: function(element, eventName, memo) {
element = $(element);
if (element == document && document.createEvent && !element.dispatchEvent)
element = document.documentElement;
var event;
if (document.createEvent) {
event = document.createEvent("HTMLEvents");
event.initEvent("dataavailable", true, true);
} else {
event = document.createEventObject();
event.eventType = "ondataavailable";
}
event.eventName = eventName;
event.memo = memo || { };
if (document.createEvent) {
element.dispatchEvent(event);
} else {
element.fireEvent(event.eventType, event);
}
return Event.extend(event);
}
В частности, в этой строке: element.fireEvent(event.eventType, event);
. Также я пользуюсь IE8. Извини за это. Кто-нибудь может помочь мне заставить этих двух детей хорошо играть вместе? Похоже, на эти вопросы нет ответов.
РЕДАКТИРОВАТЬ: вот скрипка того, что я считаю воспроизведением моей проблемы:
http://jsfiddle.net/vbzju/7/
В качестве основы выбран прототип (именно это использует программное обеспечение для опроса), но затем я добавляю jQuery в качестве сценария заголовка, вызываю noConflict, а затем пробую простую функцию jQuery. Я думаю, что выданная ошибка совпадает с ошибкой, которую я получаю на моей машине.