on(“ click”,event)触发而无需单击

Pab*_*que 0 javascript jquery web

这个主题也有类似的问题,但是他们的答案对我的问题没有帮助。

我试图使用jQuery on("click")来触发一个函数,该函数只是更改被单击的id的类。但是该函数在页面加载时被调用,然后如果您单击应该触发该函数的内容,则它将不会。

这是html:

<nav>
    <ul>
        <li id="all" class="tab-current"><a><span>All Departments</span></a></li>
    </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

这里的js:

var $all = $("#all");
$all.on("click", function(){
    tabClicked("all");
});
Run Code Online (Sandbox Code Playgroud)

我也尝试过这个:

$all.on("click", tabClicked("all"));
Run Code Online (Sandbox Code Playgroud)

这是函数:

function tabClicked(input){
    //do some stuff here
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?先谢谢了!:)

Ror*_*san 5

您的点击处理程序逻辑中有一个错误;您只需要将匿名函数传递给处理程序:

$all.on("click", function(){
    tabClicked("all");
});
Run Code Online (Sandbox Code Playgroud)

您的原始文件$(function() {});等同于$(document).ready()因此立即执行,无论是否单击了元素。