1. 程式人生 > >js新增事件、移除事件、阻止冒泡、阻止瀏覽器預設行為等寫法(相容IE/FF/CHROME)

js新增事件、移除事件、阻止冒泡、阻止瀏覽器預設行為等寫法(相容IE/FF/CHROME)

js新增事件/移除事件/阻止冒泡/阻止瀏覽器預設行為寫法(相容IE/FF/CHROME)

1.新增事件

var addEvent = function( obj, type, fn ) {
  if (obj.addEventListener)
      obj.addEventListener( type, fn, false );
  else if (obj.attachEvent) {
      obj["e"+type+fn] = fn;
      obj.attachEvent( "on"+type, function() {
          obj["e"+type+fn].call(obj, window.event);
      } );
  }
};

2.移除事件

var removeEvent = function( obj, type, fn ) {
  if (obj.removeEventListener)
      obj.removeEventListener( type, fn, false );
  else if (obj.detachEvent) {
      obj.detachEvent(  "on" +type, obj["e"+type+fn] );
      obj["e"+type+fn] = null;
  }
};

3.阻止事件(包括冒泡和預設行為)

var stopEvent = function(e){
    e = e || window.event;
    if(e.preventDefault) {
      e.preventDefault();
      e.stopPropagation();
    }else{
      e.returnValue = false;
      e.cancelBubble = true;
    }
  },

僅阻止事件冒泡

var stopPropagation = function(e) {
   e = e || window.event;
  if (!+"\v1″) {
     e.cancelBubble = true;
  } else {
     e.stopPropagation();
  }
}

僅阻止瀏覽器預設行為

var  preventDefault  = function(e) {
    e = e || window.event;
    if(e.preventDefault) {
      e.preventDefault();
    }else{
      e.returnValue = false;
    }
}

4.取得事件源物件

var getEventTarget = function(e){
   e = e || window.event;
  var target = event.srcElement ? event.srcElement : event.target;
  return target;
}

附:繫結onpropertychange事件

onpropertychange,它在一個元素的屬性發生變化的時候觸發,一般用在表單元素中捕獲其value值改變,它比onchange事件更實時捕獲它的改變,不過為微軟私有事件。FF大致和它相似的有oninput事件,不過它只針對textfield與textarea的value屬性。safari,firefox,chrome與 opera都支援此事件。

var addPropertyChangeEvent = function (obj,fn) {
  if(window.ActiveXObject){
      obj.onpropertychange = fn;
  }else{
      obj.addEventListener("input",fn,false);
  }
}

相關推薦

js新增事件事件阻止冒泡阻止瀏覽器預設行為寫法(相容IE/FF/CHROME)

js新增事件/移除事件/阻止冒泡/阻止瀏覽器預設行為寫法(相容IE/FF/CHROME)1.新增事件var addEvent = function( obj, type, fn ) { if (obj.addEventListener) obj.addEven

JQuery繫結事件事件動畫

繫結事件:bind()、on()、live()、delegate()、keyup(); 觸發事件:trigger(‘keyup’)、keyup(); 解綁事件:unbind()、off()、die()、undelegate(); 符合事件:hover()

jquery的基礎語法選取元素操作元素事件事件事件

jquery基礎知識 1.jquery檔案的引入,所有的js程式碼要寫在下面那段程式碼下面。 <script src="../jquery-1.11.2.min.js"></script> <!--引入的jquery一定是在最上面的,

JS綁定事件事件的處理方法

nbsp 觸發 ner 它的 msu eve code ont 一個 addEventListener()與removeEventListener()用於處理指定和刪除事件處理程序操作。全部的DOM節點中都包括這兩種方法,而且它們都接受3個參數:要處理的事件名、作為事件

新增事件事件

第一種: 通過addEventListener新增事件,必須通過removeEventListener移除事件,並且回撥與引數都必須一致,所以如下情況使用匿名回撥函式是無法移除事件的。 不起效: document.addEventListener('mousedown', function() {  

jQuery鍵盤事件,繫結事件事件,複合事件

鍵盤事件是指每次按下或者釋放鍵盤上得按鍵時所產生的事件,常用的鍵盤事件的方法: keydown()   :按下鍵盤時觸發的事件方法; keyup()   :釋放按鍵時觸發的事件方法; keypress()  :產生可列印的字元時觸發的事件

jquery中有兩種繫結事件事件

今天專案中需要用到這種方法所以記錄一下: /* 1、eventName $("button").click(function(){}) 部分事件不支援 2、on(ecentName,fn) $("button").on('click',function(){}) 所有事件

JQuery中的事件 (六.事件)

1.為同一個元素繫結多個事件 <script type="text/javascript"> $(function(){ $('#btn').bind("click", function(){ $('#test').append("<

監聽瀏覽器關閉事件,並且相容ie,ff,chrome

  剛剛換了工作小組,小組哥們說有個煩人的功能,就是執行過程必須在瀏覽器這邊進行,但是使用者可能在執行過程中按F5或者關閉了瀏覽器,導致執行失敗!說到這個,我想起了在csdn的時候關閉瀏覽器有彈出詢問框的功能,於是百度和google監聽瀏覽器關閉監聽的方法,廢話不多說,直接上

js--阻止冒泡,捕獲,預設行為

防止冒泡和捕獲 w3c的方法是e.stopPropagation(),IE則是使用e.cancelBubble = true· var el = window.document.getElementById("a"); el.onclick = function (e) {

js中常用的事件,onclick 單擊事件onblur 失去焦點事件onchange改變事件onmouseover滑鼠進入事件onmouseout滑鼠事件onsubmit提交事件

onclick 單擊事件 onblur 失去焦點事件 onchange 當物件或選中區的內容改變時觸發。 onmouseover 當用戶將滑鼠指標移動到物件內時觸發。 onmouseout 當用戶將滑鼠指標移出物件邊界時觸發。 onsubmit 當表單將要被提交時觸發。

C# 有關控件自定義類事件中的委托鏈的獲取操作

ons class 單擊 spa inf += finish ati pre 直接來代碼吧,這樣幹脆直接,也不耽誤我午休了。一切盡在源碼中。 public class ControlEventTool { /// <summary>

js怎樣新增移動複製建立和查詢節點

參考:http://www.w3school.com.cn/xmldom/dom_nodes_get.asp (1)建立新節點 var para=document.createElement(“p”); //建立新的 元素 var node=document.createTextN

JS中的DOM操作怎樣新增移動複製建立和查詢節點

  DOM操作怎樣新增、移除、移動、複製、建立和查詢節點?   (1)建立新節點 createDocumentFragment() //建立一個DOM片段 createElement()

JS動態新增事件 和 獲取Event (相容IE和Firefox)

今天小弄了一下JS事件,主要說一下FF和IE相容的問題 物件名.addEventListener("事件名(不帶ON)",函式名,true/false);(FF下) 物件名.attachEvent("事件名",函式名);(IE下) 說明:   事件名稱,要注意的是"

JS新增節點節點克隆節點

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>建立節點和新增節點</title> </h

js新增移動複製建立和查詢節點

1)建立新節點 createDocumentFragment() //建立一個DOM片段 createElement() //建立一個具體的元素 createTextNode() //建立一個文字節點 2)新增、移除、替換、插入 appendChild() //新增 r

Android RecyclerView設定佈局管理器設定Item增加動畫新增分割線

概述 RecyclerView出現已經有一段時間了,相信大家肯定不陌生了,大家可以通過匯入support-v7對其進行使用。 據官方的介紹,該控制元件用於在有限的視窗中展示大量資料集,其實這樣功能的控制元件我們並不陌生,例如:ListView、GridView。 那麼有了ListView、G

a標籤新增事件及開啟禁用事件

一、新增移除點選事件 <script type="text/javascript" src="jquery.min.js"></script><script type="text/javascript">$(function(){ $(".b").click(f

動態載入jscss

本文簡單介紹動態載入、移除、替換js/css檔案 。有時候我們在寫前端的時候,會有出現需要動態載入一些東如css js 這樣能減輕使用者載入負擔,從而提高響應效率。下面貼出程式碼。//JS寫法  <script language="JavaScript"> //動態載入一個js