JavaScript-两条javascript代码 放到一起第一条不能使用

发布于 2016-10-20 12:39:59 字数 147 浏览 1422 评论 3

<script language="JavaScript" src="js/j_xiegushi.js" type="text/javascript"></script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夜无邪 2017-05-19 16:00:40

你指的失效有如下原因:
1.j_xiegushi.js如果调用了jquery机制的代码,但是你先于jquery加载,必定没法显示效果,其实不是失效!
2.你在j_xiegushi.js中定义的方法或者部分变量等在jquery中已经预先都定义好了,那么也是会失效的!
同时给你一个方法:firebug+firfox,打开调试器,好多原因都可以找到!

灵芸 2017-04-15 02:01:23

浏览器对javascript是阻塞执行,所以js文件是前面的先执行。但如果前面的js文件使用了后面的js定义的变量,比如$,就会执行失败。

可以把js文件位置调换,然后在使用了jquery的js文件中使用$(function(){});的格式

虐人心 2016-12-08 00:21:21

j_xiegushi.js 里面是不是用到了JQuery的函数?把两句先后顺序调换一下试试

①要先加载jQuery,再加载j_xiegushi.js。
即调用处改成:

<script src="jquery/jquery.js"></script>
<script src="js/j_xiegushi.js"></script>

以后再加js脚本的话,也要注意,如果文件内用到了jQuery,要写在jQuery的后面。

②把j_xiegushi.js里的代码都套在$(function(){})的花括号中
文件里面:

$(function(){ //添加的

function $(id){
return document.getElementById(id);
}
window.onload = function(){
$('xie_mingcheng').focus();
/* 省略 */
alert('未知错误');

xmlhttp.send(null);
}
}

}); //添加的

按照你原来的写法,先加载j_xiegushi.js的话,找不到jQuery的$函数,会报错。
即使先加载jQuery,后加载j_xiegushi.js的话,没有放到ready事件中处理,会在文档未加载完时就执行了代码,这样你写的绑定事件等代码都因为现在这个时刻在文档中还没有对应的对象(文档还未加载完),无法进行绑定,表现出脚本没起到作用。但jQuery一般不会报出错误。

③jQuery的事件绑定写法,不是$('xie_neirong').onkeydown() 这样的,没有on。类似$('xie_neirong').keydown(function(){}) ,参考
http://www.w3school.com.cn/jquery/jquery_ref_events.asp

③jQuery $()的检索参数类似CSS,如果检索ID为xie_biaozhun的,要写$('#xie_biaozhun'),要检索class为xie_biaozhun的,要写$('.xie_biaozhun')

④$('#xie_mingcheng').value , $('#xie_biaozhun').innerHTML 不是这样用的,使用jQUery以后就不能跟原来操作dom似的了,用$('#xie_mingcheng').val()代替 $('#xie_mingcheng').value,读取的话,不传递参数,修该的话,把想改成的值作为参数传进去。
$('#xie_biaozhun').html() 代替 $('#xie_biaozhun').innerHTML。
如果不习惯,想用原来dom的操作方式,把$('#xie_biaozhun')改成$('#xie_biaozhun')[0],就可以照原来的方式操作了。

⑤其他可能还有,建议你认真看看jQuery吧,不要携带原来操作dom的印象,不要想当然,从头学一下。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文