如何将事件绑定到元素?

时间:2012-02-27 09:24:00

标签: javascript

如何在纯javascript中将事件绑定到元素:

这就是JQuery的功能,你如何使用纯javascript实现它?

$('#arrow_left')
 .bind('click', {'c_index': c_index - item_limit }, 
  function(e)
  {
   var r = e.data.c_index; 
  }

3 个答案:

答案 0 :(得分:2)

您可以使用element.AddEventListener

target.addEventListener(type, listener[, useCapture]);

在IE的情况下(在IE9之前),您将使用attachEvent

bSuccess = object.attachEvent(the_event, function_handler)
//the_event always starts with "on"

像这样:

<input id="btn" type="button" value="click me" />​​​​​​​​​​​

JS:

function click_handler()
{
    alert("clicked");
}
var el = document.getElementById("btn");   
if(el.addEventListener)//check if this exists
{
    el.addEventListener("click", click_handler);   
} else {
    //then we're on IE older than 9
    el.attachEvent("onclick",click_handler);
}​

查看演示: http://jsfiddle.net/E8nYr/2/

答案 1 :(得分:2)

elem.addEventListener(eventType,    
                      handler,      
                      useCapture);  

对于IE6,7,8:

elem.attachEvent (event,            
                  handler);         

这是老式的方式,但无论如何你都在使用jQuery,为什么要改变呢?

答案 2 :(得分:1)

对于非IE 你给它三个参数:事件类型,要执行的函数和一个布尔值(true或false),指示事件处理程序是应该在捕获阶段还是在冒泡阶段执行。如果您不确定是否要捕获或冒泡,请使用false。


element.addEventListener('click',doSomething,false)

//In IE
element.attachEvent('onclick',doSomething)