js事件冒泡替我背了很多黑锅 嘿嘿

简介: 在这之前,我一直认为一些jsBUG是事件冒泡引起的,直到最近,我自己写的APP时间冒泡冒得特别严重,无法容忍的严重,所以我就写了个代码测试了一下 因为现在大多数网页都是无刷新的翻页,流式加载等等,所以就会出现 在线演示http://readgame.

 

    在这之前,我一直认为一些jsBUG是事件冒泡引起的,直到最近,我自己写的APP时间冒泡冒得特别严重,无法容忍的严重,所以我就写了个代码测试了一下

因为现在大多数网页都是无刷新的翻页,流式加载等等,所以就会出现

在线演示http://readgame.sinaapp.com/appa/moban/bindtest/

页面载入时绑定一些事件例如

        $(document).ready(function () {
            // 在这里写你的代码...
            mybind();
            //
 
 
        });
        function mybind() {
            $('#test').bind('click', function () {
                var today = new Date();
 
                $("#con").append(today.getTime() + "<br>");
            
            });
        }

通过js翻页 或流式加载append如新的HTML模块,在绑定相同的事件

假设我翻页10次或流式载入10个html模块

<!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 runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            // 在这里写你的代码...
            mybind();
            //
            $('#page').bind('click', function () {
                mypage();
            });
 
        });
        function mybind() {
            $('#test').bind('click', function () {
                var today = new Date();
 
                $("#con").append(today.getTime() + "<br>");
            
            });
        }
        function mypage() {
        var i=0;
        for (i = 0; i < 10; i++) {
        mybind()
        }
        }
 
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <input type="button" id="test" value="点击查看效果" />==<input type="button" id="page" value="模仿分页时在绑定" />
    <div id="con"></div>
    </div>
    </form>
</body>
</html>

结果 哎 没文化害死人。。。。。。。

微博桌面截图_20121021180648

 

 

由于做webAPP 大多数界面都是js绘制的,所以这个现行就比较严重了,

 

 

郁闷的是这个问题如何解决?求js高手现身!

 

 

 

 

 

 

 

 

 

 

 

 

test
相关文章
|
6月前
|
JavaScript 前端开发
js开发:请解释事件冒泡和事件捕获。
JavaScript中的事件处理有冒泡和捕获两种方式。事件冒泡是从子元素向上级元素传递,而事件捕获则从外层元素向内层传递。`addEventListener`的第三个参数可设定事件模式,`false`或不设为冒泡,`true`为捕获。示例代码展示了如何设置。
49 2
|
1月前
|
JavaScript 前端开发 UED
JS DOM 事件流与事件冒泡
【10月更文挑战第16天】理解 DOM 事件流和事件冒泡是掌握 JavaScript 事件处理的关键。通过合理利用事件冒泡,可以实现更高效、灵活的事件处理机制,提升用户体验和开发效率。在实际开发中,要根据具体情况灵活运用这些概念,以达到最佳的效果。
|
5月前
|
JavaScript 前端开发
事件委托是JS技巧,通过绑定事件到父元素利用事件冒泡,减少事件处理器数量,提高性能和节省内存。
【6月更文挑战第27天】事件委托是JS技巧,通过绑定事件到父元素利用事件冒泡,减少事件处理器数量,提高性能和节省内存。例如,动态列表可共享一个`click`事件处理器,通过`event.target`识别触发事件的子元素,简化管理和响应动态内容变化。
48 0
|
1月前
|
JavaScript 前端开发 UED
JavaScript中的事件冒泡
JavaScript中的事件冒泡
|
2月前
|
存储 JavaScript 前端开发
js事件冒泡和事件委托
事件冒泡是指事件从最内层元素开始逐级向上传播至祖先元素的过程,默认情况下,点击子元素时会先触发自身的事件处理程序,再依次向上触发父元素的处理程序。事件委托则是在父元素上设置事件处理程序,利用事件冒泡机制处理子元素的事件,以此减少内存消耗和提高性能,特别适用于处理大量动态子元素的情况。其区别在于事件冒泡是事件传播机制的一部分,而事件委托是编程技巧,通过在父元素上绑定事件处理程序来简化子元素的事件处理。
25 0
|
3月前
|
JavaScript 前端开发 UED
JavaScript中的事件冒泡
JavaScript中的事件冒泡
26 1
|
4月前
|
JavaScript
js 事件流、事件冒泡、事件捕获、阻止事件的传播
js 事件流、事件冒泡、事件捕获、阻止事件的传播
75 1
|
5月前
|
JavaScript
Vue.js中使用.self修饰符来处理事件冒泡
Vue.js中使用.self修饰符来处理事件冒泡
|
6月前
|
JavaScript 前端开发
js的事件冒泡
js的事件冒泡
33 1