導航:首頁 > 編程語言 > 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相關的資料

熱點內容
w619線刷教程 瀏覽:759
怎麼培養編程思想 瀏覽:697
手機捆綁app的軟體怎麼卸載 瀏覽:32
vb編程器有什麼用 瀏覽:999
excel如何分列數據與文字 瀏覽:884
512網路病毒 瀏覽:994
java調用google地圖api介面 瀏覽:726
文件管理圖片小窗 瀏覽:599
顯卡數據怎麼設置 瀏覽:557
無法創建cad圖紙集文件 瀏覽:788
紙質文件轉換電子版 瀏覽:807
矩陣鍵盤掃描程序原理 瀏覽:986
怎麼開發高級編程 瀏覽:530
政府的拆遷紅頭文件在哪裡找 瀏覽:600
xp串口工具 瀏覽:469
反射javaforname區別 瀏覽:249
java添加計時器和圖片 瀏覽:452
shell編輯文件內容 瀏覽:614
u盤驅動在哪個文件夾里 瀏覽:938
華為手機跟蘋果手機怎麼克隆app 瀏覽:172

友情鏈接