Почему пузыри не работают - PullRequest
0 голосов
/ 13 июля 2010

Я просто хочу понять, как работают захват и всплывающее окно.

К сожалению, этот код работает только в IE, а не в Firefox.

Когда я нажимаю на div3, он просто останавливается на этом.это не пузырится к элементу тела.Может ли кто-нибудь просветить меня.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Untitled 1</title>
<script type="text/javascript">

var addEvent = function(elem, event, func, capture){
    if(typeof(window.event) != 'undefined'){
        elem.attachEvent('on' + event, func);
    }
    else{
        elem.addEventListener(event, func, capture);
    }
}


var bodyFunc = function(){
    alert('In element body')
}

var div1Func = function(){
    alert('In element div1')
}

var div2Func = function(){
    alert('In element div2')
}

var div3Func = function(){
    alert('In element div3')
}


var init = function(){
    addEvent(document.getElementsByTagName('body')[0], 'click', bodyFunc, true);
    addEvent(document.getElementById('div1'), 'click', div1Func, true);
    addEvent(document.getElementById('div2'), 'click', div2Func, true);
    addEvent(document.getElementById('div3'), 'click', div3Func, true);
}


addEvent(window, 'load', init, false)


</script>
</head>

<body>

<h1>Using the Modern Event Model</h1>

<div id="div1" style="border:1px solid #000000;padding:10pt;background:cornsilk">

    <p>This is div 1</p>

    <div id="div2" style="border:1px solid #000000;padding:10pt;background:gray">

        <p>This is div 2</p>   

        <div id="div3" style="border:1px solid #000000;padding:10pt; background:lightBlue">
            <p>This is div 3</p>
        </div>

    </div>

</div>


</body>

</html>

1 Ответ

0 голосов
/ 30 декабря 2010

Я не совсем уверен, что именно вы видите, но когда я открываю страницу в FF3.6 на Win7 и нажимаю на div 3, я вижу то, что ожидал: «В теле элемента», затем div1, затем div2 и, наконец, div3. Другими словами, я вижу предупреждения в порядке захвата.

Вы видите пузыри в IE, потому что, AFAIK, IE только пузырится и никогда не захватывает.

Вы должны увидеть захват в FF, потому что вы говорите событиям прослушивать в режиме захвата, передавая true в качестве последнего параметра 4 вызовов addEvent. Измените эти четыре на «ложь», и вы увидите порядок пузырьков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...