奇怪的问题:$(function(){}) 内部代码不运行

落草为寇的海带王 2017-08-10 04:56:03
情景如下:
html如下

<div id="main"></div>
<p id="p1">btn1</p>
<p id="p2">btn2</p>

点击p1、p1分别请求一个页面放入div中

$("#p1").click(function(){
$("#main").load("/p1.html")
})
$("#p2").click(function(){
$("#main").load("/p2.html")
})

其中,p1,p2页面里面js都是用的$(function(){})包裹代码

错误如下:
当点击p1时如果内部js代码出错:

$(function(){
var o={};
o[0][0];
alert("p1")
})

再点击p2不再执行$(function(){}) 内部代码

我都晕了,求解 =。=
...全文
1270 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
- -
引用 10 楼 weixin_39424046 的回复:
[quote=引用 8 楼 showbo 的回复:] [quote=引用 7 楼 weixin_39424046 的回复:] [quote=引用 5 楼 showbo 的回复:] [quote=引用 3 楼 weixin_39424046 的回复:] [quote=引用 1 楼 showbo 的回复:] 没问题...你确认你p2 js语法没有错误。。
肯定没问题,我是两个页面都没问题后,再改的p1代码[/quote]自己看控制台报什么错误,测试了不会相互影像,除非你p1导入了什么全局变量,p2用到什么的[/quote] 我这家又测了一次,确实不会,我明天去公司再看看这个问题[/quote]自己看下控制台报的错误进行修正 学习资料 extjs开发技巧[/quote] 1.x ,2.x版本有问题,3.x上才没这个问题,项目根本不敢用升级这么多 = 。=[/quote] 1.4.1测试没问题,反到是2+的测试有问题,浏览器firefox。 不放dom ready里面就可以执行,也没必要反dom ready里面,将script放在加载页面的html最下面,如果你代码又用到ajax加载信息,后续要操作ajax加载dom的放到ajax success回调中操作就行了

<script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.4.1/jquery.min.js"></script>
<div id="main"></div>
<p id="p1">btn1</p>
<p id="p2">btn2</p>
<script>
    $("#p1").click(function () {
        $("#main").load("p1.html")
    })
    $("#p2").click(function () {
        $("#main").load("p2.html")
    })
</script>
p1.html

p1.html
<script>
    $(function () { alert(xxxxxxxxxx) })
</script>
p2.html

p2.html
<script>
    $(function(){alert('p2.html')})
</script>


推荐学习资料
Web开发网
easyui开发技巧
jqGrid表单编辑配置
  • 打赏
  • 举报
回复
引用 8 楼 showbo 的回复:
[quote=引用 7 楼 weixin_39424046 的回复:] [quote=引用 5 楼 showbo 的回复:] [quote=引用 3 楼 weixin_39424046 的回复:] [quote=引用 1 楼 showbo 的回复:] 没问题...你确认你p2 js语法没有错误。。
肯定没问题,我是两个页面都没问题后,再改的p1代码[/quote]自己看控制台报什么错误,测试了不会相互影像,除非你p1导入了什么全局变量,p2用到什么的[/quote] 我这家又测了一次,确实不会,我明天去公司再看看这个问题[/quote]自己看下控制台报的错误进行修正 学习资料 extjs开发技巧[/quote] 1.x ,2.x版本有问题,3.x上才没这个问题,项目根本不敢用升级这么多 = 。=
  • 打赏
  • 举报
回复
引用 8 楼 showbo 的回复:
[quote=引用 7 楼 weixin_39424046 的回复:] [quote=引用 5 楼 showbo 的回复:] [quote=引用 3 楼 weixin_39424046 的回复:] [quote=引用 1 楼 showbo 的回复:] 没问题...你确认你p2 js语法没有错误。。
肯定没问题,我是两个页面都没问题后,再改的p1代码[/quote]自己看控制台报什么错误,测试了不会相互影像,除非你p1导入了什么全局变量,p2用到什么的[/quote] 我这家又测了一次,确实不会,我明天去公司再看看这个问题[/quote]自己看下控制台报的错误进行修正 学习资料 extjs开发技巧[/quote] 话说ext我以前用过一年。 刚才测试了,换了高版本的jquery就行,1.11.2这个版本的有问题。 我又测了下window.onload,貌似异步加载html不执行html里面的onload??
  • 打赏
  • 举报
回复
引用 12 楼 weixin_39424046 的回复:
[quote=引用 11 楼 showbo 的回复:] - - [quote=引用 10 楼 weixin_39424046 的回复:] [quote=引用 8 楼 showbo 的回复:] [quote=引用 7 楼 weixin_39424046 的回复:] [quote=引用 5 楼 showbo 的回复:] [quote=引用 3 楼 weixin_39424046 的回复:] [quote=引用 1 楼 showbo 的回复:] 没问题...你确认你p2 js语法没有错误。。
肯定没问题,我是两个页面都没问题后,再改的p1代码[/quote]自己看控制台报什么错误,测试了不会相互影像,除非你p1导入了什么全局变量,p2用到什么的[/quote] 我这家又测了一次,确实不会,我明天去公司再看看这个问题[/quote]自己看下控制台报的错误进行修正 学习资料 extjs开发技巧[/quote] 1.x ,2.x版本有问题,3.x上才没这个问题,项目根本不敢用升级这么多 = 。=[/quote] 1.4.1测试没问题,反到是2+的测试有问题,浏览器firefox。 不放dom ready里面就可以执行,也没必要反dom ready里面,将script放在加载页面的html最下面,如果你代码又用到ajax加载信息,后续要操作ajax加载dom的放到ajax success回调中操作就行了

<script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.4.1/jquery.min.js"></script>
<div id="main"></div>
<p id="p1">btn1</p>
<p id="p2">btn2</p>
<script>
    $("#p1").click(function () {
        $("#main").load("p1.html")
    })
    $("#p2").click(function () {
        $("#main").load("p2.html")
    })
</script>
p1.html

p1.html
<script>
    $(function () { alert(xxxxxxxxxx) })
</script>
p2.html

p2.html
<script>
    $(function(){alert('p2.html')})
</script>
推荐学习资料 Web开发网 easyui开发技巧 jqGrid表单编辑配置[/quote] 1.4没测,不过确实也没必要放在$(fn)里,主要还是考虑封装成局部变量,我改成(functions(){})()这种方式应该可以。 话说easyui我也正在用。。。。[/quote] 你担心变量污染可以搞个匿名函数,不需要放dom ready里面
(function(){
//your code

})()
  • 打赏
  • 举报
回复
引用 11 楼 showbo 的回复:
- - [quote=引用 10 楼 weixin_39424046 的回复:] [quote=引用 8 楼 showbo 的回复:] [quote=引用 7 楼 weixin_39424046 的回复:] [quote=引用 5 楼 showbo 的回复:] [quote=引用 3 楼 weixin_39424046 的回复:] [quote=引用 1 楼 showbo 的回复:] 没问题...你确认你p2 js语法没有错误。。
肯定没问题,我是两个页面都没问题后,再改的p1代码[/quote]自己看控制台报什么错误,测试了不会相互影像,除非你p1导入了什么全局变量,p2用到什么的[/quote] 我这家又测了一次,确实不会,我明天去公司再看看这个问题[/quote]自己看下控制台报的错误进行修正 学习资料 extjs开发技巧[/quote] 1.x ,2.x版本有问题,3.x上才没这个问题,项目根本不敢用升级这么多 = 。=[/quote] 1.4.1测试没问题,反到是2+的测试有问题,浏览器firefox。 不放dom ready里面就可以执行,也没必要反dom ready里面,将script放在加载页面的html最下面,如果你代码又用到ajax加载信息,后续要操作ajax加载dom的放到ajax success回调中操作就行了

<script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.4.1/jquery.min.js"></script>
<div id="main"></div>
<p id="p1">btn1</p>
<p id="p2">btn2</p>
<script>
    $("#p1").click(function () {
        $("#main").load("p1.html")
    })
    $("#p2").click(function () {
        $("#main").load("p2.html")
    })
</script>
p1.html

p1.html
<script>
    $(function () { alert(xxxxxxxxxx) })
</script>
p2.html

p2.html
<script>
    $(function(){alert('p2.html')})
</script>
推荐学习资料 Web开发网 easyui开发技巧 jqGrid表单编辑配置[/quote] 1.4没测,不过确实也没必要放在$(fn)里,主要还是考虑封装成局部变量,我改成(functions(){})()这种方式应该可以。 话说easyui我也正在用。。。。
  • 打赏
  • 举报
回复
引用 7 楼 weixin_39424046 的回复:
[quote=引用 5 楼 showbo 的回复:] [quote=引用 3 楼 weixin_39424046 的回复:] [quote=引用 1 楼 showbo 的回复:] 没问题...你确认你p2 js语法没有错误。。
肯定没问题,我是两个页面都没问题后,再改的p1代码[/quote]自己看控制台报什么错误,测试了不会相互影像,除非你p1导入了什么全局变量,p2用到什么的[/quote] 我这家又测了一次,确实不会,我明天去公司再看看这个问题[/quote]自己看下控制台报的错误进行修正 学习资料 extjs开发技巧
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
[quote=引用 3 楼 weixin_39424046 的回复:] [quote=引用 1 楼 showbo 的回复:] 没问题...你确认你p2 js语法没有错误。。
肯定没问题,我是两个页面都没问题后,再改的p1代码[/quote]自己看控制台报什么错误,测试了不会相互影像,除非你p1导入了什么全局变量,p2用到什么的[/quote] 我这家又测了一次,确实不会,我明天去公司再看看这个问题
letMeAlone_ 2017-08-10
  • 打赏
  • 举报
回复
引用 4 楼 weixin_39424046 的回复:
[quote=引用 2 楼 a250758092 的回复:] o[0][0]; 改:o[0];
。。。。。。。这个是故意的[/quote] 哦哦~没看完问题,我觉得没有问题耶,你是不是直接引用了 cdn上面的jq文件?比如<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>这些
  • 打赏
  • 举报
回复
引用 3 楼 weixin_39424046 的回复:
[quote=引用 1 楼 showbo 的回复:] 没问题...你确认你p2 js语法没有错误。。
肯定没问题,我是两个页面都没问题后,再改的p1代码[/quote]自己看控制台报什么错误,测试了不会相互影像,除非你p1导入了什么全局变量,p2用到什么的
  • 打赏
  • 举报
回复
引用 2 楼 a250758092 的回复:
o[0][0]; 改:o[0];
。。。。。。。这个是故意的
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
没问题...你确认你p2 js语法没有错误。。
肯定没问题,我是两个页面都没问题后,再改的p1代码
letMeAlone_ 2017-08-10
  • 打赏
  • 举报
回复
o[0][0]; 改:o[0];
  • 打赏
  • 举报
回复
没问题...你确认你p2 js语法没有错误。。

87,994

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧