У меня есть один элемент html (elem1
) и 2 функции JS (func1
, func2
), который скрывает и показывает elem1
соответственно. Эти JS-функции делают индивидуальные вызовы ajax, а func2
звонит func1
внутри.show() перезаписано несколько вызовов ajax
Задача: Мне нужно позвонить func2
, который внутренне звонит func1
. Переписка func1
шторы скрыты elem1
. После звонка func1
, я хочу show
elem1
. Но этот show
не работает.
JSFiddle: https://jsfiddle.net/46o93od2/21/
HTML:
<div id="elem">
Save ME
</div>
<br/>
<button onclick="func1()" id="func1">Try Func1</button>
<button onclick="func2()" id="func2">Try Func2</button>
JS:
function func1() {
$.ajax({
url: '/echo/json/', //use the correct processing url here
type: "POST",
data: {}, // send in your data
success: function (data) {
//var aData = JSON.parse(data); // there is no data to parse
$('#elem').hide();
},
error: function (xhr, errmsg, err) {
alert('error');
}
});
}
function func2() {
$.ajax({
url: '/echo/json/', //use the correct processing url here
type: "POST",
data: {}, // send in your data
success: function (data) {
//var aData = JSON.parse(data); // there is no data to parse
func1();
$('#elem').show();
},
error: function (xhr, errmsg, err) {
alert('error');
}
});
}
Какой вопрос? Ваши ошибки связаны с тем, что для разбора нет строки JSON. Это работает https://jsfiddle.net/46o93od2/21/ – spaceman
'func1()' является асинхронным из-за AJAX. Он не скрывает элемент до получения ответа. Итак, 'func2' показывает элемент первым. – Barmar
В скрипке не называйте 'JSON.parse (data)'. jQuery автоматически анализирует его. – Barmar