编辑:这个问题很愚蠢,因为我在其他地方犯了错误导致它。
我决定今天在Opera上测试我的网站,看看它在Chrome和FF中完美运行..所以我为ubuntu下载了最新的Opera并尝试登录我的网站。的Bleh。
由于某种原因,它没有识别我绑定到表单的“submit”事件的任何函数,我需要进行验证等。我有通常的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);
}
}
答案 0 :(得分:0)
这是另一个无耻的框架插件......
YAHOO.Util.Event.on( loginForm, 'click', function(e){
alert('It definitely works now!');
} );
如果您热衷于添加一些YUI / jquery,请发送ID:D
答案 1 :(得分:0)
我复制了你的代码,见下文:
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的PC上。
您是否尝试过使用Dragonfly查看是否有错误?