为了账号安全,请及时绑定邮箱和手机立即绑定

新手求问,关于js function调用的问题

新手求问,关于js function调用的问题

慕斯709654 2019-03-05 16:23:48
目前,我在写js代码时,将js文件分为两类:一是所有页面都要调用一些function的公共文档;二是页面单独要用到的功能文档。我在公共文档里写了window.onload=function(){};在功能文档里针对每个功能写一个function,然后在HTML要用到的地方调用如:onclick="XXX(){}",但是有些是多个标签用到同一个功能如下方代码:`<ul><li>111</li><li>222</li><li>333</li><li>444</li></ul>`<script>var test=document.getElementByTagName('li');for (j = 0; j < test.length; j++) {        test[i].onclick=function(){}</script>在这种情况下,需要把代码写成一个function吗?如果写成了function,难道要给每个li标签都麻烦的调用吗?而且引入公共文档里面已经有一个window.onload了。如果不写functon的话有会显得代码很乱。说了这么多,其实就是想知道大家在写js代码时是如何分类?在已经有一个wiondow.onload的情况下怎么调用其他的function?
查看完整描述

4 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

对于监听 ul 下所有 li 这种需求,一般是监听 ul 的事件,然后通过 event.target 之类的方式去获取真正触发事件的元素,这个涉及 DOM 的事件机制,你可以了解一下。

一般来说不写 window.onload 这种形式,我个人是这样的:

(function(window, document, undefined) {

    ...

})(window, document, undefined)

很多规范写法都是要慢慢积累的,你也可以直接看各网站那些未被混淆的 js 文件来快速了解。


查看完整回答
反对 回复 2019-03-14
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

那个for循环用事件委托写法就好了


var Ul = document.getElementById("ul");

  Ul.onclick = function(ev){

    var ev = ev || window.event;

    var target = ev.target || ev.srcElement;

    if(target.nodeName.toLowerCase() == 'li'){

            alert(123);

            <!--你的function-->

    }

  }


查看完整回答
反对 回复 2019-03-14
?
慕斯王

TA贡献1864条经验 获得超2个赞

不用for遍历,直接例如这样:$('ul>li').bindclick.. 
$('ul>li')就代表ul下所有li了。你百度一下“Js选择器”,基础多学一下。

查看完整回答
反对 回复 2019-03-14
  • 4 回答
  • 0 关注
  • 476 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信