2个不同的点击事件冲突?

Hen*_*son 0 javascript jquery

我有一个链接:

<a href="javascript:void(0)" class="lorem hello"> link </a>
Run Code Online (Sandbox Code Playgroud)

我有两个不同的onclick函数设置为这两个类:

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

        // stuff

    }
});
Run Code Online (Sandbox Code Playgroud)

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

        // stuff

    }
});
Run Code Online (Sandbox Code Playgroud)

这会阻止顶部工作.为什么?如何让这两个功能在分离时工作?

Bar*_*mar 6

您只能为onclick属性分配一个函数.你应该使用普通的jQuery事件绑定,它允许多个处理程序:

$(".lorem").click(function() {
    // stuff
});
$(".hello").click(function() {
    // stuff
});
Run Code Online (Sandbox Code Playgroud)

如果你想用原生Javascript做,你可以使用addEventListener; 顾名思义,这些是添加剂,它们不会取代.

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

        // stuff

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

        // stuff

    })
});
Run Code Online (Sandbox Code Playgroud)


m90*_*m90 5

当您使用查询时,为什么要使用.onclickDOM元素(因此覆盖以前的绑定).而是使用jQuery .on:

$('.lorem').on('click', function(){
  // something
});
$('.hello').on('click', function(){
  // something else
});
Run Code Online (Sandbox Code Playgroud)