Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jsfiddle.net上的JavaScript_Javascript - Fatal编程技术网

jsfiddle.net上的JavaScript

jsfiddle.net上的JavaScript,javascript,Javascript,您将看到在这段代码的最底部有一个addEventHandler函数,它在WindowLoad上运行。如果我想在jsfiddle.net上测试这一点,考虑到页面没有在jsfiddle.net上加载,我应该如何更改代码。这是小提琴 请记住,我是个新手,所以尽量详细回答。谢谢 function addEventHandler(oNode, evt, oFunc, bCaptures) { if (window.attachEvent) oNode.attachEvent("on

您将看到在这段代码的最底部有一个addEventHandler函数,它在WindowLoad上运行。如果我想在jsfiddle.net上测试这一点,考虑到页面没有在jsfiddle.net上加载,我应该如何更改代码。这是小提琴

请记住,我是个新手,所以尽量详细回答。谢谢

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
事件。

你应该在左列中使用JSFIDLE
onDomReady
事件。

我想你的问题是,事件并没有按预期绑定。原因是JSFIDLE的标准配置是在加载时运行代码。因此,您的事件将永远不会被激发,因为onLoad已被激发


要更改此设置,请使用“无包裹(头部)”配置。要更改它,请使用左上角的下拉列表。

我想您的问题在于事件没有按预期绑定。原因是JSFIDLE的标准配置是在加载时运行代码。因此,您的事件将永远不会被激发,因为onLoad已被激发

要更改此设置,请使用“无包裹(头部)”配置。要更改它,请使用左上角的下拉列表