jsfiddle.net上的JavaScript
您将看到在这段代码的最底部有一个addEventHandler函数,它在WindowLoad上运行。如果我想在jsfiddle.net上测试这一点,考虑到页面没有在jsfiddle.net上加载,我应该如何更改代码。这是小提琴 请记住,我是个新手,所以尽量详细回答。谢谢jsfiddle.net上的JavaScript,javascript,Javascript,您将看到在这段代码的最底部有一个addEventHandler函数,它在WindowLoad上运行。如果我想在jsfiddle.net上测试这一点,考虑到页面没有在jsfiddle.net上加载,我应该如何更改代码。这是小提琴 请记住,我是个新手,所以尽量详细回答。谢谢 function addEventHandler(oNode, evt, oFunc, bCaptures) { if (window.attachEvent) oNode.attachEvent("on
function addEventHandler(oNode, evt, oFunc, bCaptures)
{
if (window.attachEvent)
oNode.attachEvent("on"+evt, oFunc);
else
oNode.addEventListener(evt, oFunc, bCaptures);
}
function getEventTarget(e) {
if (window.event) return window.event.srcElement;
else return e.target;
}
function div1Handler(evt) {
var e = evt || window.event;
var target = getEventTarget(e);
var str = "Event handler for div1, target: " + target.getAttribute('id') + " , type: " + e.type;
if (e.eventPhase) str+=" ; phase: " + e.eventPhase;
alert(str);
if (e.cancelBubble != null) e.cancelBubble=true;
else e.stopPropagation();
}
function div2Handler(evt) {
var e = evt || window.event;
var target = getEventTarget(e);
var str = "Event handler for div2, target: " + target.getAttribute('id') + " , type: " + e.type;
if (e.eventPhase) str+=" ; phase: " + e.eventPhase;
alert(str);
}
function div3Handler(evt) {
var e = evt || window.event;
var target = getEventTarget(e);
var str = "Event handler for div3, target: " + target.getAttribute('id') + " , type: " + e.type;
if (e.eventPhase) str+=" ; phase: " + e.eventPhase;
alert(str);
}
function bodyHandler(evt) {
var e = evt || window.event;
var target = getEventTarget(e);
var str = "Event handler for body, target: " + target.getAttribute('id') + " , type: " + e.type;
if (e.eventPhase) str+=" ; phase: " + e.eventPhase;
alert(str);
}
function initializeHandlers() {
addEventHandler(document.getElementsByTagName("body")[0],"click",bodyHandler,false);
addEventHandler(document.getElementById("div1"),"click",div1Handler,false);
addEventHandler(document.getElementById("div2"),"click",div2Handler,false);
addEventHandler(document.getElementById("div3"),"click",div3Handler,false);
if (!window.event) {
addEventHandler(document.getElementsByTagName("body")[0],"click",bodyHandler,true);
addEventHandler(document.getElementById("div1"),"click",div1Handler,true);
addEventHandler(document.getElementById("div2"),"click",div2Handler,true);
addEventHandler(document.getElementById("div3"),"click",div3Handler,true);
}
}
addEventHandler(window, "load", function(evt) { initializeHandlers() } );
试试这个:
我所做的很简单。我修改了JSFIDLE左侧的两个下拉列表,如下所示。
早些时候,您已经在Mootools onLoad事件中编写了该事件。我的修改将代码放置在页面的头标签上,没有任何包装。明白了吗?试试这个:
我所做的很简单。我修改了JSFIDLE左侧的两个下拉列表,如下所示。
早些时候,您已经在Mootools onLoad事件中编写了该事件。我的修改将代码放置在页面的头标签上,没有任何包装。明白了吗?你应该在左列中使用JSFIDLE
onDomReady
事件。你应该在左列中使用JSFIDLEonDomReady
事件。我想你的问题是,事件并没有按预期绑定。原因是JSFIDLE的标准配置是在加载时运行代码。因此,您的事件将永远不会被激发,因为onLoad已被激发
要更改此设置,请使用“无包裹(头部)”配置。要更改它,请使用左上角的下拉列表。我想您的问题在于事件没有按预期绑定。原因是JSFIDLE的标准配置是在加载时运行代码。因此,您的事件将永远不会被激发,因为onLoad已被激发 要更改此设置,请使用“无包裹(头部)”配置。要更改它,请使用左上角的下拉列表