2015-05-22 53 views
0

我有一個鏈接:點擊事件衝突有2種不同嗎?

<a href="javascript:void(0)" class="lorem hello"> link </a> 

我有兩個不同的onclick功能設置爲兩個類是這樣的:

jQuery(".lorem").each(function(){ 
    this.onclick = function() { 

     // stuff 

    } 
}); 

jQuery(".hello").each(function(){ 
    this.onclick = function() { 

     // stuff 

    } 
}); 

這將停止頂一個工作。爲什麼?我怎樣才能使兩個功能分開工作?

+3

jQuery和'onclick'處理程序?你正在做一些反模式。使用jQuery'on'方法來綁定事件處理程序。 – undefined

回答

6

您可以在一個功能只分配到onclick財產。你應該使用jQuery的正常事件綁定,它允許多個處理程序:

$(".lorem").click(function() { 
    // stuff 
}); 
$(".hello").click(function() { 
    // stuff 
}); 

如果你想與本地JavaScript做到這一點,你可以使用addEventListener;顧名思義,這些都是附加的,它們不會替代。

jQuery(".lorem").each(function(){ 
    this.addEventListener("click", function() { 

     // stuff 

    }) 
}); 
jQuery(".hello").each(function(){ 
    this.addEventListener("click", function() { 

     // stuff 

    }) 
}); 
5

當您使用查詢時,爲什麼在DOM元素上使用.onclick(因此覆蓋以前的綁定)。相反,使用jQuery的.on

$('.lorem').on('click', function(){ 
    // something 
}); 
$('.hello').on('click', function(){ 
    // something else 
});