Как увеличить число кликов с помощью javascript / jquery? - PullRequest
1 голос
/ 30 января 2012

У меня есть 5 ссылок, которые создаются в цикле ($ .each):

$.each(data, function(index, element) {
name = element.name;
id = element.id;
    $('<a href="#" id="'+id+'" onClick="submitNotification('+id+');">'+name+'</a>')

});

, в моем случае это создаст 5 ссылок:

<a href="#" id="1" >name1</a>
<a href="#" id="2" >name2</a>
<a href="#" id="3" >name3</a>
<a href="#" id="4" >name4</a>
<a href="#" id="5" >name5</a>

и

function submitNotification(cdata){
alert('you selected '+cdata->name+' on '+place+'place');

         $.ajax({ 
    type: 'POST', 
    url: 'http://www.example.com/test.php', 
    data: cdata,
    dataType:'json',
    success: function (data) {
    ...
    }

});
}

Когда я нажимаю на любую ссылку, чтобы получить предупреждение: you selected name2 on 1 place.Затем, если я нажму другую ссылку, чтобы получить то же самое оповещение, но с переменным place, увеличенным на единицу.

Другими словами, каждый раз, когда я нажимаю на ссылку, я получаю place, начиная с 1 и увеличивая 1 доон достигает 5

, а затем отправляет данные на почту ajax.

Теперь есть две вещи, которые я затрудняюсь делать:

1. placing id and name inside an javascript object so i they both can be available to send to the ajax post
2. how do i do the increment so that no matter on what link i click first the countwill start from 1. 

Есть идеи?зная, что это мне очень поможет.

Спасибо

1 Ответ

0 голосов
/ 30 января 2012

Объявите счетчик места и контейнер данных вне функции:

var place = 0, postData = [];

function submitNotification(cdata){
  place++;
  alert('you selected '+cdata->name+' on '+place+'place');

  postData.push(cdata);

  if (place == 5) {

         $.ajax({ 
    type: 'POST', 
    url: 'http://www.example.com/test.php', 
    data: { places: postData },
    dataType:'json',
    success: function (data) {
        ...
      }
    });

  }

}
...