Muszę zwiększać i zmniejszać wartość wejść po kliknięciu przycisków + i -, ale wydaje się, że nie działa. Dostałem kod z tego posta: How to increase the value of a quantity field with jQuery? Po kliknięciu przycisku dodawania wstawiłem instrukcję console.log dla celów debugowania i, co zaskakujące, otrzymuję wartość 3, mimo że kliknąłem przycisk o identyfikatorze add1. Naprawdę to doceniam, jeśli mógłbyś wskazać mi błąd, dzięki!Zwiększanie i zmniejszanie wartości wejściowych przy użyciu jquery
HTML:
<body>
<p>
<img src="http://i.imgur.com/yOadS1c.png" id="minus1" width="20" height="20">
<input id="qty1" type="text" value="1">
<img id="add1" src="http://i.imgur.com/98cvZnj.png" width="20" height="20">
</p>
<p>
<img src="http://i.imgur.com/yOadS1c.png" id="minus2" width="20" height="20">
<input id="qty2" type="text" value="1">
<img id="add2" src="http://i.imgur.com/98cvZnj.png" width="20" height="20">
</p>
</body>
jQuery:
$(function() {
var numButtons = 2;
//console.log(typeof(numButtons));
//console.log(numButtons);
for (var i = 1; i <= numButtons; i++) {
$("#add" + i).click(function() {
console.log(i);
var currentVal = parseInt($("#qty" + i).val());
//console.log(currentVal);
if (!isNaN(currentVal)) {
$("#qty" + i).val(currentVal + 1);
}
});
$("#minus" + i).click(function() {
var currentVal = parseInt($("#qty" + i).val());
if (!isNaN(currentVal) && currentVal > 0) {
$("#qty" + i).val(currentVal - 1);
}
});
}
});
jsfiddle - http://jsfiddle.net/hMS6Y/
czemu iteracji nad numButtons? Dlaczego po prostu nie masz programów obsługi zdarzeń? –
Hmm, uwzględni to. Muszę wygenerować wiele wejść z różnymi identyfikatorami, dlatego pomyślałem, że pętla for ma sens. Czy można to naprawić? – Faizal
Twoja zmienna i znajduje się w stanie globalnym, a po zakończeniu pętli for jej wartość wynosi 3, a funkcje przekazywane do zdarzenia kliknięcia mają dostęp do wartości i, gdy są wyzwalane w przypadku zdarzenia kliknięcia. Tak więc wartość i tych funkcji będzie wynosiła 3. –