局部变量(在函数中)到全局(jQuery)

时间:2018-11-15 02:43:47

标签: javascript jquery

我有四个<button>标签,我需要在单击按钮标签时jQuery添加类Active

这是我的代码:

$(document).ready(function () {
    var btnActive;
    $(".cont-btn button:nth-of-type(1)").click(function () {
        btnActive = 1;
    });
    $(".cont-btn button:nth-of-type(" + btnActive + ")").click(function () {
        for (i = 0; i <= 4; i++) {
            if (i === btnActive) {
                $(".cont-btn button:nth-of-type(" + btnActive + ")").addClass("active");
            } else {
                $(".cont-btn button:nth-of-type(" + i + ")").removeClass("active");
            }
        }
    });
});

对不起,我的英语

PD。我在控制台at HTMLDocument.<anonymous> (proyectos.html:97)

中收到此错误

3 个答案:

答案 0 :(得分:0)

您正在使它变得比所需的复杂。

假设<button>位于class="cont-btn"内,以下应做您需要做的事情

var $buttons = $(".cont-btn button").click(function () {
  $buttons.removeClass('active');
  $(this).addClass('active');    
});

答案 1 :(得分:0)

有一种更简单的方法来处理此问题。当您单击按钮时,请删除感兴趣的按钮,然后将其添加到您单击的元素中:

$(".cont-btn").click(function () {
  $(".cont-btn").removeClass("active");
  $(this).addClass("active");
});

Example

答案 2 :(得分:0)

ionic cordova emulate ios -- --buildFlag="-UseModernBuildSystem=0" 此代码仅执行一次。

您的代码可能是这样

$(".cont-btn button:nth-of-type(" + btnActive + ")")

P.s。我猜您误解了事件处理程序的工作方式。我建议您阅读有关此主题的更多信息。 JS中的执行流程不容易掌握。