Opera не распознает мой обработчик событий, связанный с событием отправки формы! - PullRequest
0 голосов
/ 13 июля 2011

Редактировать: Этот вопрос глуп, поскольку у меня была ошибка, которая привела к нему.

Я решил проверить свой сайт в Opera сегодня, увидев, что он отлично работает в Chrome и FF.Поэтому я скачал последнюю версию Opera для Ubuntu и попытался зайти на мой сайт.BLEH.

По какой-то причине он не распознает какие-либо функции, которые я связываю с событием «отправки» форм, которое мне нужно для проверки и т. Д. У меня есть обычный addEvent(element, eventtype, callback), который выполняет соответствующий вызов либо addEventListener, либо attachEvent,

Как я уже сказал, это прекрасно работает как в Chrome, так и в Firefox.Я даже пытался

addEvent(loginForm, 'submit', function(){alert("It works");});

, но не получил никакого ответа.Так что речь идет даже не об остановке действия по умолчанию, как я сначала подумал, но на самом деле не связывает событие вообще!Что касается приведенного выше примера, я могу подтвердить, что loginForm содержит ссылку на фактический элемент формы.

Кто-нибудь имеет какие-либо идеи, что происходит с Opera?

РЕДАКТИРОВАТЬ: Ниже приведеномоя функция addEvent

function addEvent (obj, evt, callback) {
    if (evt=="mousewheel")
        evt = (/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel"
    if (obj.addEventListener){
        obj.addEventListener(evt, callback, false);
    } else {
        obj.attachEvent("on" + evt, callback);
    }
}

Ответы [ 2 ]

0 голосов
/ 13 июля 2011

Я скопировал ваш код, см. Ниже:

window.onload = function(){

    var loginForm = document.getElementById("frm");

    function addEvent (obj, evt, callback) {
        if (evt=="mousewheel") {
            evt = (/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel"
        }
        if (obj.addEventListener){
            obj.addEventListener(evt, callback, false);
        } else {
            obj.attachEvent("on" + evt, callback);
        }
    }

    addEvent(loginForm, 'submit', function(){alert("It works");});
}

И это работает.Хотя я в настоящее время на ПК в Opera.

Вы пытались использовать Dragonfly, чтобы увидеть, есть ли ошибки?

0 голосов
/ 13 июля 2011

Вот еще один бесстыдный фреймворк-плагин ...

YAHOO.Util.Event.on( loginForm, 'click', function(e){
    alert('It definitely works now!');
} );

ИДК, если вы хотите добавить немного YUI / jquery или нет: D

...