Пожалуйста, см. Ниже код для переключения между двумя функциями при нажатии кнопки. Но кнопка становится невидимой после нажатия и вторая функция всегда вызывается. Зачем!?
$('#btnClick').click(function () {
$(this).toggle(
//$('tr').toggleClass("highlight");
function () {
alert("Function one called");
},
function () {
alert("second function called");
});
});
Благодарю!
Thats, потому что toggle (функция, функция...) удаляется в 1. 9+, что вы должны сделать, это что-то вроде этого
var tog = false;
$('#btnClick').click(function () {
tog = !tog;
if (tog) {
alert("Function one called");
} else {
alert("second function called");
}
});
Если вы предпочитаете, без глобальных переменных
$('#btnClick').click(function () {
var clicked = $(this).data('clicked') || 0;
if (clicked % 2 == 0) {
alert("Function one called");
} else {
alert("second function called");
}
$(this).data('clicked', clicked + 1);
});
попробуйте с условием If, и вы получите как требование
HTML:
<input type="button" id="btnClick" value="button 1"/>
<input type="button" id="btnClick1" value="button 2"/>
JQuery:
var i=true;
$('#btnClick').click(function () {
i= !i;
if (i) {
alert("2nd function called");
$('#btnClick1').toggle();
} else {
alert("1st function called");
$('#btnClick1').toggle();
}
});
$('#btnClick').toggle(function () {
alert("Function one called");// work on first click
},
function () {
alert("second function called");// work on second click
});
ссылка toggle
обновление для новой версии jquery 1.9 + toggle удаляется в новой версии
var stat= 0;
$('#btnClick').click(function () {
stat= !stat;
if (stat) {
alert("Function one called");
} else {
alert("second function called");
}
});
toggle
давно устарела и была удалена в v1.9. Кроме того, документы, на которые вы ссылаетесь, не имеют ничего общего с этой старой удаленной версией toggle
, которая описана здесь .
tog = !tog;
? Намного легче читать (и то, что вы сделали, было неверно;)