有些JS为什么不可以单独放在一个js文件里面



有些JS为什么不可以单独放在一个js文件里面

2012-08-07 16:43 583922227  |  浏览 1428 次
<script language="javascript"> 
function slide(types,id,nums,class1,class2) {
  for(i=1;i<=nums;i++) {
    document.getElementById(types + i).className=class2;
    document.getElementById("_"+types+i).style.display="none";
  }
    document.getElementById(types+id).className=class1;
    document.getElementById("_"+types+id).style.display="block";
}
</script>
专业回答
2015-11-07 18:36

JavaScript一般都可以将不同的function放入同一个JavaScript文件中,只是再放入过程中不要把<script language="javascript">  </script>也加进去。这句话是指在HTML页面识别JS代码的标签,在JS文件中不用加标签。

JavaScript一般都可以将不同的function放入同一个JavaScript文件中,但是会有一些个例会导致运行不起来,如下就是运行不起来的大致原因:

  1. 在JavaScript文件中加入了在HTML页面中加载的标签:<script language="javascript">  </script>。需要将标签取消之后才可以用之中的JS内容。

  2.  在JavaScript文件中拥有重名的function内容,这样的话JS就无法分辨客户端调用的是哪一个了。

  3. 在JavaScript文件中同样会有JQuery代码,这样的话客户端就会先加载JQuery,后加载JS,导致JS运行出错。

为您推荐:

2012-08-08 09:18 提问者采纳
能放,不过放进去的时间,要把
<script language="javascript"> 与 </script> 去的掉
 
<script language="javascript"> 与 </script> 用在用html文件中区分js代码的标记,直接用js文件话,就不要用了,用了,反而错了。
追问:
这个肯定却掉了,可能是放还有另外一个函数里面,他也有获取id的语句应该覆盖了吧
,单独放一个js文件就可以了
追答:
又看了一下你写的语句,理解你是想做成tab交换显示的效果,呵呵,其实你的办法太过于沉旧了,好几年前都不用这种办法了^o^,现在都用jquery来实现tab效果了。不过你用的办法是对的。js调试要学会用firebug。
提问者评价
谢谢,可以加你为好友么,我的qq583922227

有些JS为什么不可以单独放在一个js文件里面

2012-08-07 16:43 583922227  |  浏览 1428 次
<script language="javascript"> 
function slide(types,id,nums,class1,class2) {
  for(i=1;i<=nums;i++) {
    document.getElementById(types + i).className=class2;
    document.getElementById("_"+types+i).style.display="none";
  }
    document.getElementById(types+id).className=class1;
    document.getElementById("_"+types+id).style.display="block";
}
</script>
专业回答
2015-11-07 18:36

JavaScript一般都可以将不同的function放入同一个JavaScript文件中,只是再放入过程中不要把<script language="javascript">  </script>也加进去。这句话是指在HTML页面识别JS代码的标签,在JS文件中不用加标签。

JavaScript一般都可以将不同的function放入同一个JavaScript文件中,但是会有一些个例会导致运行不起来,如下就是运行不起来的大致原因:

  1. 在JavaScript文件中加入了在HTML页面中加载的标签:<script language="javascript">  </script>。需要将标签取消之后才可以用之中的JS内容。

  2.  在JavaScript文件中拥有重名的function内容,这样的话JS就无法分辨客户端调用的是哪一个了。

  3. 在JavaScript文件中同样会有JQuery代码,这样的话客户端就会先加载JQuery,后加载JS,导致JS运行出错。

为您推荐:

2012-08-08 09:18 提问者采纳
能放,不过放进去的时间,要把
<script language="javascript"> 与 </script> 去的掉
 
<script language="javascript"> 与 </script> 用在用html文件中区分js代码的标记,直接用js文件话,就不要用了,用了,反而错了。
追问:
这个肯定却掉了,可能是放还有另外一个函数里面,他也有获取id的语句应该覆盖了吧
,单独放一个js文件就可以了
追答:
又看了一下你写的语句,理解你是想做成tab交换显示的效果,呵呵,其实你的办法太过于沉旧了,好几年前都不用这种办法了^o^,现在都用jquery来实现tab效果了。不过你用的办法是对的。js调试要学会用firebug。
提问者评价
谢谢,可以加你为好友么,我的qq583922227
<think>我们之前讨论的是在HTML页面内嵌JavaScript代码实现清空输入框的功能。现在用户希望将JavaScript代码放到一个单独JS文件中。 解决方案: 1. 创建一个单独的JavaScript文件(例如:script.js) 2. 在该文件中编写事件监听代码,注意由于代码在HTML元素加载之后执行,需要确保DOM加载完成再绑定事件 3. 在HTML文件中通过<script>标签引入该JS文件 具体步骤: 第一步:创建script.js文件,内容如下: ```javascript // 使用DOMContentLoaded事件确保在DOM加载完成后执行 document.addEventListener('DOMContentLoaded', function() { // 获取按钮和输入框元素 const addButton = document.getElementById('addButton'); const nameInput = document.getElementById('Name'); // 如果按钮和输入框存在(避免未找到元素时出错) if (addButton && nameInput) { addButton.addEventListener('click', function() { // 清空输入框 nameInput.value = ''; // 清除验证提示(如果有) nameInput.setCustomValidity(''); }); } }); ``` 第二步:在HTML文件中引入该JS文件(假设script.js与HTML文件在同一目录) ```html <!-- 在body结束标签之前引入JS文件,确保DOM已经解析 --> <body> <!-- 之前的HTML结构 --> <div> <div class="mb-3"> <label for="Name">书名</label> <input class="form-control" type="text" id="Name" name="Name" required /> </div> <button id="addButton" class="btn btn-primary">添加</button> </div> <!-- 引入外部JS文件 --> <script src="script.js"></script> </body> ``` 关键点说明: - 使用`DOMContentLoaded`事件:确保脚本在DOM完全加载后执行,从而能正确获取到元素。 - 元素存在性检查:避免在未找到元素时执行操作导致错误。 - 外部引入:通过`<script src="script.js"></script>`引入外部JS文件,注意路径正确。 注意事项: 1. 如果按钮是动态生成的(例如通过AJAX或JavaScript动态添加),则需要使用事件委托(Event Delegation)方式绑定事件。 2. 外部JS文件能包含`<script>`标签,直接写JavaScript代码即可。 §§相关问题§§ 1. 如果页面中有多个需要清空的输入框和对应的按钮,如何通过外部JS文件统一管理? 2. 当使用外部JS文件时,如何调试可能出现的脚本加载失败问题? 3. 在动态生成按钮的场景下,如何使用事件委托实现清空输入框功能? 4. 如何优化外部JS文件的加载位置以提高页面性能? 5. 如果多个页面都需要相同的清空功能,如何设计外部JS文件以实现代码复用?</think>要将清空输入框的功能移到单独的 JavaScript 文件中,请按照以下步骤操作: ### 解决方案 1. **创建外部 JS 文件**(如 `clearInput.js`) 2. **在 HTML 中引入该文件**(放在 `</body>` 前确保 DOM 加载完成) 3. **使用事件监听器**(避免内联事件处理) ```html <!-- HTML 文件 --> <div> <div class="mb-3"> <label for="Name">书名</label> <input class="form-control" type="text" id="Name" name="Name" required /> </div> <button id="addButton" class="btn btn-primary">添加</button> </div> <!-- 在 body 结束前引入 JS 文件 --> <script src="clearInput.js"></script> ``` ```javascript // clearInput.js 文件内容 document.addEventListener('DOMContentLoaded', function() { const addButton = document.getElementById('addButton'); const nameInput = document.getElementById('Name'); addButton.addEventListener('click', function() { nameInput.value = ''; // 清空输入框 nameInput.setCustomValidity(''); // 清除验证提示 }); }); ``` ### 关键说明 1. **DOMContentLoaded 事件**:确保脚本在 DOM 完全加载后执行 2. **元素获取**:使用 `getElementById` 获取按钮和输入框元素 3. **事件绑定**:`addEventListener` 替代内联 onclick 属性 4. **功能分离**:JS 逻辑与 HTML 结构完全解耦 ### 注意事项 - 确保 JS 文件路径正确(如同目录需调整 `src` 路径) - 如果按钮是动态生成的,需使用事件委托: ```javascript document.body.addEventListener('click', function(e) { if(e.target.id === 'addButton') { document.getElementById('Name').value = ''; } }); ``` - 多个页面可复用同一个 JS 文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值