javascript - jQuery中绑定事件时能否指定事件冒泡的顺序
伊谢尔伦
伊谢尔伦 2017-04-10 12:43:01
0
3
558

由于受到模板系统的限制,我写在页面上的js是分散的,而它们都是绑定在jquery的ready事件中的,比如这样

<!-- header.php -->
<script>
$(document).ready(function () {
    ...
});
</script>

<!-- body.php -->
<script>
$(document).ready(function () {
    ...
});
</script>

<!-- foot.php -->
<script>
$(document).ready(function () {
    ...
});
</script>

因为事件执行顺序是跟它的绑定顺序一致的,也就是说foot.php里的ready肯定是最后触发的,但是由于我会在这里面做一些变量初始化的工作,想让foot.php里面readyhandler第一个被触发,请问在不挪移代码顺序的情况下有何办法呢?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

reply all(3)
刘奇
<!-- header.php -->
<script>
var ready_funcs=[function () {
    ...
});
</script>

<!-- body.php -->
<script>
ready_funcs.push(function () {
    ...
});
</script>

<!-- foot.php -->
<script>
$(document).ready(function () {
    ...
    $.each(ready_funcs,function(idx, fn){
        fn();
    });
});

</script>
Ty80

可以把header 和body 要做的事情放到函数中在footer中调用吧

黄舟

如果初始化的工作不依赖于页面其它资源的加载,可以把footer的初始化工作放到ready函数外面,
使用一个匿名函数使其立即执行。

这样的好处就是弱化了header.php和footer.php的脚本依赖关系。

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template