PHP сгенерировал текстовую операцию с Javascript - PullRequest
0 голосов
/ 28 мая 2009

Я использую текстовые поля, чтобы позволить пользователям изменять количество на веб-сайте электронной коммерции, например, http://nordschleife.metaforix.net/118/118/index.php/sony.html

Есть две проблемы, которые я надеюсь решить:

  1. В представлении каталога (например, из предыдущего URL) стрелки вверх и вниз работают только для 1-го текстового поля. Все последующие записи не работают.

  2. После нажатия на стрелку страница переходит наверх, что я тоже не намерен.

PHP используется для генерации записей, jQuery используется для действий.

Исходный файл страницы находится здесь http://www.mediafire.com/?sharekey=9df4aef22a728de5c2b435915e8821d7e04e75f6e8ebb871

Ответы [ 2 ]

2 голосов
/ 29 мая 2009

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: для предотвращения перехода наверх страницы используйте href="javascript:void(0);" вместо href="#" в своих ссылках. В качестве альтернативы ваш метод onclick может возвращать значение false, чтобы предотвратить действие по умолчанию (то есть изменение местоположения вашей веб-страницы).

0 голосов
/ 28 мая 2009
  1. Используйте jQuery's live() для создания событий, которые будут повторно применяться при изменении страницы через обновление AJAX.
  2. event.preventDefault() остановит это.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...