你的位置:首页 > Java教程

[Java教程]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 闭包

function AddMark(map, markJsonArray) {  var max = markJsonArray.length;  for (var i = 0; i < max ; i++) {  var item = markJsonArray[i];  var point = new BMap.Point(item.LocationLong, item.LocationLat);  var marker = new BMap.Marker(point); // 创建标注点  map.addOverlay(marker);       // 将标注添加到地图中     //增加点击事件  marker.addEventListener("click", (functionreturn function () {    //var p = iMarker.getPosition();    //获取iMarker的位置    //alert("iMarker的位置是" + p.lng + "," + p.lat);      alert("要跳转的url-->" + iMark.pId);    //window.location = iMark.url;    };  })(item, marker)); //每次执行到marker.addEventListener时,会执行 function (iMark, iMarker){} (item, marker) ,返回一个函数 *****这样,就解决闭包带来的问题*****
   //*****闭包引起的问题*****:如果不用上面的写法注册点击事件,用以下写法,会给所有的marker都注册同样的点击事件(即提示内容相同) //在上面这段代码中,脚本被载入内存后,并没有为函数 addEventListener() 计算变量 item.pId 的值。
  //该函数捕获 item.pId 的值只是为了以后的使用,也就是说,解释程序知道在调用该函数时要检查 item.pId 的值。
  //item.pId 将在函数调用 addEventListener() 时被赋值;item.pId值为markJsonArray[max-1].pId。 marker.addEventListener("click", function () { alert("要跳转的url-->" + item.pId); }; }); }}