Я использую javascript var для управления запуском вызова ajax. Вызов запускается из события щелчка (в поле «#week _tag
»), и его нужно запускать только один раз на загрузку страницы. Одно и то же событие щелчка также переключает отображение скользящей панели («#week_summary»), где отображаются данные из вызова ajax.Как очистить значение переменной javascript?
В приведенном ниже примере я пытаюсь использовать переменную и оператор if, чтобы запретить вызов ajax от вызова, когда пользователь нажимает кнопку «#week _tag
» во второй раз, чтобы закрыть панель скольжения. Статус var устанавливается на «before», когда страница загружается, и после вызова ajax устанавливается «после». Если статус var равен «before», вызов выполняется, иначе «#week_summary» просто переключается. Он не работает, потому что я не знаю, как дать var «status» второе значение «after». Есть идеи?
$(document).ready(function(){
var status = "before";
alert("before:"+status);
$('#week_tag').click(function(){
if(status =="before"){
alert("afterclick:"+status);
var form_date_set = $("input[name='date_set']").val();
$.post("/tortus/index.php/daylog/build_summary",
{date_set:form_date_set},
function(html){
$("#week_summary").html(html);
var status = "after";
});
}
$('#week_summary').toggle('blind');
alert("after:"+status);
});
});
Это не решит, я считаю. Проблема в том, что «статус» будет поддерживать любое значение, с которым оно связано, когда было создано закрытие, даже когда оно изменяется вне закрытия. – KaptajnKold
также вызов ajax является асинхронным, поэтому предупреждение всегда будет до – redsquare
@ KaptajnKold: поскольку переменная создается за пределами закрытия функции ajax, она будет доступна для всех функций внутри функции document.ready. – peirix