JQuery 函数不会在第一次单击时触发,但在所有后续单击时都会按预期运行

标签 jquery

我只需要将选定的链接显示为选定状态并显示指示的 div,同时隐藏其他两个。这是 jsfiddle:

http://jsfiddle.net/HZ4CZ/1/

为什么第一次点击不起作用,但此后每次点击都起作用?

$(document).ready(function() {
    $('ul#chooseType li a').click(function(e) {   
        $('#active').click(function(){
            $('.activeDiv').removeClass('show_hide');
            $('.inactiveDiv').addClass('show_hide');
            $('.thirdMenuDiv').addClass('show_hide');
            $('#active').addClass('selected');
            $('#inactive').removeClass('selected');
            $('#thirdMenu').removeClass('selected');
        });
        $('#inactive').click(function(){
            $('.activeDiv').addClass('show_hide');
            $('.inactiveDiv').removeClass('show_hide');
            $('.thirdMenuDiv').addClass('show_hide');
            $('#active').removeClass('selected');
            $('#inactive').addClass('selected');
            $('#thirdMenu').removeClass('selected');
        });
        $('#thirdMenu').click(function(){
            $('.activeDiv').addClass('show_hide');
            $('.inactiveDiv').addClass('show_hide');
            $('.thirdMenuDiv').removeClass('show_hide');
            $('#active').removeClass('selected');
            $('#inactive').removeClass('selected');
            $('#thirdMenu').addClass('selected');
        });

    });
});

最佳答案

不要嵌套您的点击处理程序!摆脱这个包罗万象的处理程序,你就准备好了。 fiddle :http://jsfiddle.net/tymeJV/HZ4CZ/2/

取消此处理程序:$('ul#chooseType li a').click(function(e) {

它之所以有效,是因为您的点击处理程序实际上都没有在页面加载时绑定(bind),它们在初始点击后绑定(bind)。

关于JQuery 函数不会在第一次单击时触发,但在所有后续单击时都会按预期运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19057354/

相关文章:

jquery - 如何在加载 jQuery Mobile 页面之前对其进行修改?

javascript - 为什么这个 jquery .css 行不能在 2 个函数中工作?

javascript - 这个字符/运算符在 javascript/jquery 选择中意味着什么?

javascript - 我的 ID 为 #firstheader 的 H1 div 不会淡出

javascript - 单击按钮显示谷歌图表

javascript - 在 React 组件中执行另一个 JS 文件中的函数

javascript - 使用 jQuery AJAX 通过 PHP 将表单数组传递给 Javascript

javascript - 使用自定义链接单击传单 map 中的 openPopup()

javascript - 在 jQuery on() 中组合多个操作

javascript - 使用 JQuery 启用和禁用点击事件