Я использую текстовые поля, чтобы пользователи меняли количество на веб-сайте электронной торговли, например http://nordschleife.metaforix.net/118/118/index.php/sony.html
Надеюсь решить две проблемы:
В представлении каталога (например, в предыдущем URL) стрелки вверх и вниз работают только для 1-го текстового поля. Все последующие записи не работают.
После нажатия стрелки страница идет вверху, что не то, что я намерен.
PHP используется для создания записей, jQuery используется для действий.
Исходный файл для этой страницы находится здесь http://www.mediafire.com/?sharekey=9df4aef22a728de5c2b435915e8821d7e04e75f6e8ebb871
1: Вместо того, чтобы регистрировать событие для каждой стрелки отдельно, вы можете сделать только один скрипт для всех из них. Сделайте стрелку следующим образом:
<a id="upImg_705" ... rel="qty_705" class="uparrow"> <input id="qty_705" class="input-text qty" type="text" value="1" maxlength="12" name="qty"/> <a id="downImg_705" ... rel="qty_705" class="downarrow">
затем зарегистрировать эти функции как обработчики событий кликов:
$('.uparrow').live("click", function() { var rel = $(this).attr('rel'); var textbox = document.getElementById(rel); textbox.value = parseInt(textbox.value)+1; return false; } $('.downarrow').live("click", function() { var rel = $(this).attr('rel'); var textbox = document.getElementById(rel); textbox.value = parseInt(textbox.value)-1; return false; }
2: Чтобы предотвратить goin в верхней части страницы, используйте href="javascript:void(0);"
вместо href="#"
в ваших ссылках. Альтернативно, метод onclick может возвращать значение false, чтобы предотвратить действие по умолчанию (т. Е. Изменение местоположения вашей веб-страницы).
live()
jQuery для создания событий, которые будут повторно применены при изменении страницы с помощью обновления AJAX. event.preventDefault()
остановит это.