在同一個(gè)js文件里,有兩個(gè)寫好的方法 a,b。當(dāng)c方法調(diào)用時(shí),可以運(yùn)行,但是如果兩個(gè)方法c,d同時(shí)調(diào)用上述的ab方法只執(zhí)行第二個(gè)d方法。怎么辦,是把a(bǔ),b做成封包還是放到其他js文件。這兩個(gè)是操作方法function a(first) { //移動目標(biāo)方法 first.onmousedown = function (e) { //把onclick改成mouseover就是一獲得焦點(diǎn)圖片就跟隨鼠標(biāo)移動,onmousedown鼠標(biāo)拖動效果 e.preventDefault && e.preventDefault(); //去掉圖片拖動響應(yīng) 重要!!! var x = e.clientX - first.offsetLeft; var y = e.clientY - first.offsetTop; document.onmousemove = function (e) { first.style.left = e.clientX - x + "px"; first.style.top = e.clientY - y + "px"; }; document.onmouseup = function () { document.onmousemove = null; document.onmouseup=null; } }};//Collision detection,碰撞檢測,first為第一個(gè)傳入?yún)?shù),為移動的元素,second為第二個(gè)傳入的參數(shù),為靜止的元素。method為方法,即碰撞后調(diào)用的方法;function b(first,second,method) { //碰撞檢測 /* var first=document.getElementById("#");//動 var second=document.getElementById("#");//靜*/ first.onmousemove=function () { //在first移動時(shí)檢測碰撞 var t1 = first.offsetTop, l1 = first.offsetLeft, r1 = first.offsetLeft + first.offsetWidth, b1 = first.offsetTop + first.offsetHeight; var t2 = second.offsetTop, l2 = second.offsetLeft, r2 = second.offsetLeft + second.offsetWidth, b2 = second.offsetTop + second.offsetHeight; var noConflict=b1<t2 || l1>r2 || t1>b2 || r1<l2;// 表示沒碰上 if(!noConflict){ //返回值給調(diào)用的方法進(jìn)行判斷;× // return true; method.f(); //調(diào)用在json數(shù)據(jù)里寫好的函數(shù)方法,形成動態(tài)加載; // method(); //換一種思路,里面的操作調(diào)用其他方法,形成嵌套; } }}兩個(gè)調(diào)用function c() { var method={ //測試采用json方法傳遞定義好的函數(shù) name:"method", f:function () { //方法定義區(qū)間,請寫入first與second碰撞發(fā)生的效果; //語句 } move(first); CD(first,second,method);}function d(){ var method={ name:"method", f:function () { //語句 } } move(first); CD(first,second,method);}cd之間的first,second,method都是不一樣的。
js調(diào)用同一個(gè)方法兩次,只執(zhí)行第二個(gè)方法。
白衣染霜花
2019-03-14 18:13:16