js jquery 异常

1.0 TypeError: $(...).carousel is not a function
原因:可能是没有引用或者引用了多个jquery:
<script src="~/js/jquery-1.8.2.js"></script>
<script src="~/Script/jquery-1.8.2.js"></script>

2.0 闭包

 

 1 function AddMark(map, markJsonArray) {
 2     var max = markJsonArray.length;
 3     for (var i = 0; i < max ; i++) {
 4     var item = markJsonArray[i];
 5     var point = new BMap.Point(item.LocationLong, item.LocationLat);
 6     var marker = new BMap.Marker(point);  // 创建标注点
 7     map.addOverlay(marker);              // 将标注添加到地图中
 8 
 9     //*****闭包引起的问题*****:如果用以下写法,会给所有的marker都注册同样的点击事件(即提示内容相同)
10     //在上面这段代码中,脚本被载入内存后,并没有为函数 addEventListener() 计算变量 item.pId 的值。
11     //该函数捕获 item.pId 的值只是为了以后的使用,也就是说,解释程序知道在调用该函数时要检查 item.pId 的值。
12     //item.pId 将在函数调用 addEventListener() 时被赋值;item.pId值为markJsonArray[max-1].pId。
13     marker.addEventListener("click", function () {
14         alert("要跳转的url-->" + item.pId);
15     });//也就是说,页面加载过程中, 注册点击marker时, 提示 "要跳转的url-->" + item.pId .这个时候去找item变量的值. 
16     //用户操作是, 页面已加载完毕, 此时 item的值在页面加载过程中,经过for循环一系列改变后,最终是 markJsonArray[max-1] . 
17     //导致结果,所有的marker点击事件提示内容一样.
18 
19     //增加点击事件
20     marker.addEventListener("click", (function (iMark, iMarker) {
21         alert("我会一直出现!");
22         //var p = iMarker.getPosition();       //获取iMarker的位置
23         //alert("iMarker的位置是" + p.lng + "," + p.lat);
24         return alert("要跳转的url-->" + iMark.pId);
25         //window.location = iMark.url;
26     })(item, marker)); //每次执行到marker.addEventListener时,会执行 function (iMark, iMarker){} (item, marker) ,返回一个函数 *****这样,就解决闭包带来的问题***** 
27 
28     }

 

转载于:https://www.cnblogs.com/ICE_Inspire/p/4986568.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值