如何更改jQuery toggle()状态

Zie*_*num 5 javascript jquery toggle

使用toogle显示/隐藏div,我有一个问题,当我用anothor函数隐藏我的div时,我必须在按钮上单击两次才能执行正确的操作.

有没有办法改变切换开关,就像我点击按钮一样?

$('#add_task').toggle(function() { 
    if ($("#new_task_status").attr("value")==0) { 
        $("#new_task").slideDown();
        $("#new_task_status").attr("value", "1");
    }
}, function() {
    if ($("#new_task_status").attr("value")==1) { 
        $("#new_task").slideUp();
        $("#new_task_status").attr("value", "0");
    }
});


$('nav').click(function() { 
    if ($("#new_task_status").attr("value")==1) { 
        $("#new_task_status").attr("value", "0");
        $("#new_task").slideUp();
    }
});
Run Code Online (Sandbox Code Playgroud)

Nic*_*ver 1

你可以改变你的.toggle()所以没关系,像这样:

$('#add_task').click(function() { 
  $("#new_task").slideToggle(function() {
    $("#new_task_status").val($(this).is(':visible') ? 1 : 0);
  });
});
Run Code Online (Sandbox Code Playgroud)

这会执行 aslideToggle()相反,因此当前状态并不重要......当它完成滑动时,如果显示(您打开了它),您会1在输入中得到 a ,否则您会得到一个0。另外,.val()用于输入设置,更容易、更通用(我假设它是这里的输入,因为这是最有可能的)。