導航:首頁 > 編程語言 > jsattach

jsattach

發布時間:2023-09-22 05:01:05

javascript中使用attachEvent添加了匿名函數事件,如何用detachEvent移除這個事件

做這種東西,建議你用js庫去做,
或者你不想用jQuery這種體積龐大的庫(也不算大,最新版本80多k,可以壓縮到50多k)
可以用CJL這種小庫,對原生的js做了些基本的兼容.體積只有6k不到.
再或者你自己封裝些常用的兼容,方法.
看下我這個愛牆的拖動怎麼樣?
http://shirne.com/love
下面是我以前寫的拖動插件,不明白的地方隨時找我.
//用法$("id1").startDrag($("id2"));
//id1為滑鼠啟用效果的元素,id2為移動的元素
//例如,有一個div元素,內有一個h2標簽作為這個div版塊的標題.就可以在h2上啟用拖動來移
//動div元素,而在div內的其它地方則不啟用拖動
var d=document;
d.addListener=function(e,f,b){
this.attachEvent?this.attachEvent('on'+e,f):this.addEventListener(e,f,b);
}
d.removeListener=function(e,f,b){
this.detachEvent?this.detachEvent('on'+e,f):this.removeEventListener(e,f,b);
}
function $(){
var o=document.getElementById(arguments[0]);
o.addListener=function(e,f,b){
this.attachEvent?this.attachEvent('on'+e,f):this.addEventListener(e,f,b);
}
o.removeListener=function(e,f,b){
this.detachEvent?this.detachEvent('on'+e,f):this.removeEventListener(e,f,b);
}
o.startDrag=function(obj){
var obj=obj?obj:o;
var sx,sy;
o.style.cursor="move";
o.addListener("mousedown",function(e){
e||event;
if(e.button==1||e.button==0){
sx=e.clientX-obj.offsetLeft;sy=e.clientY-obj.offsetTop;
d.addListener("mousemove",move,false);
d.addListener("mouseup",stopDrag,false);
}
},false);

var stopDrag=function(){
d.removeListener("mousemove",move,false);
d.removeListener("mouseup",stopDrag,false);
}
var move=function(e){
e||event;
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
if(e.preventDefault)e.preventDefault();
with (obj.style){
position="absolute"
left=e.clientX-sx+"px";
top=e.clientY-sy+"px";
}
}
}
return o;
}

要移除事件監聽,除了用函數名外,還可以用索引。
如:delete element.events[type][0]
除非你十分確定,否則用索引刪除可能會出問題

❷ javascript中總是報錯:attachEvent is not defined

window對象的attachEvent方法只在IE瀏覽器中有效,其它瀏覽器不支持這個方法,所以報錯。

❸ javascript中window.attachevent()和document.attachevent()這兩種方法綁定有什麼區別,分別在什麼時候用

element.attachevent
是指針對什麼對象綁定
window一般綁定 onload對象
document可以綁定很多 一般元素的事件都可以綁定
滑鼠 鍵盤事件都可以 該方法只針對ie
w3c是用addEventListener 進行綁定的!

❹ JS如何實現方法監聽

監聽方法在中的實現如下:
function addEventListener(string eventFlag, function eventFunc, [bool useCapture=false])
eventFlag : 事件名稱,如click、mouseover…
eventFunc: 綁定到事件中執行的動作
useCapture: 指定是否綁定在捕獲階段,true為是,false為否,默認為true
在事件監聽流中可以使用event.stopPropagation()來阻止事件繼續往下流

IE中使用自有的attachEvent函數綁定時間,函數定義如下:
function attachEvent(string eventFlag, function eventFunc)
eventFlag: 事件名稱,但要加上on,如onclick、onmouseover…
eventFunc: 綁定到事件中執行的動作
在事件監聽流中可以使用window.event.cacenlBubble=false來阻止事件繼續往下流
總結:addEventListener(string eventFlag, function eventFunc, [bool useCapture=false]),針對ff,chrome,safari瀏覽器,false指冒泡階段,默認為true,指捕獲階段。不過一般我們都用false。
attachEvent(string eventFlag, function eventFunc),針對ie系列、還有opera瀏覽器,少了事件處理機制的參數,只指定事件類型(別忘了on)和觸發哪個函數。

❺ JS通過函數名調用函數

調用方式:
方法調用模式
函數調用模式
構造器調用模式
1:方法調用模式。
/*方法調用模式*/
var myobject={
value:0,
inc:function(){
alert(this.value)
}
}
myobject.inc()

2:函數調用模式
/*函數調用模式*/

var add=function(a,b){
alert(this)//this被綁頂到window
return a+b;
}
var sum=add(3,4);
alert(sum)

3:構造器調用模式
var quo=function(string){
this.status=string;
}
quo.prototype.get_status=function(){
return this.status;
}
var qq=new quo("aaa");
alert(qq.get_status());

4:apply調用模式
/*apply*/
var arr=[10,20];
var sum=add.apply(myobject,arr);
alert(sum);

閱讀全文

與jsattach相關的資料

熱點內容
買房哪個網站好 瀏覽:913
打完新冠疫苗下載什麼app可以查到 瀏覽:879
海信電視用哪個app看網路電視 瀏覽:96
編程什麼時候流行的 瀏覽:683
自學編程新手看什麼書 瀏覽:180
linux全盤tar 瀏覽:454
ps文件命名自動輸入怎麼辦 瀏覽:467
iphone6plus切圖 瀏覽:822
iphone6沒有提示更新 瀏覽:41
cc網路圖教程 瀏覽:650
u盤無法剪切文件到電腦里 瀏覽:497
中海達靜態數據大概多少內存 瀏覽:599
蘋果6s手機文件管理器 瀏覽:107
qq頭像非主流女生捂臉 瀏覽:736
java判斷string編碼 瀏覽:941
excel工資簿如何匹配相同數據 瀏覽:159
視頻課程學習有哪些app 瀏覽:375
鐵模編程怎麼學 瀏覽:298
數學網路研修研究問題有哪些 瀏覽:677
stl文件怎麼列印 瀏覽:427

友情鏈接