Подтвердить что ты не робот

JQuery - увеличение значения счетчика при нажатии кнопки

Я создаю систему, в которой пользователь нажимает кнопку, и их счет увеличивается. Существует счетчик, который я хотел бы увеличить значение использования jQuery (чтобы страница не нуждалась в обновлении) при нажатии кнопки.

Как я могу это сделать?

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script type="text/javascript">

$("#update").click(function() {
$("#counter")++;
}

</script>

#update - кнопка, #counter - счетчик.

В php ++ увеличивает значение. Что эквивалентно jQuery?

Кроме того, при нажатии кнопки необходимо отправить запрос, который также обновляет значение оценки в базе данных mysql, без обновления страницы. Кто-нибудь знает, как я это сделаю?

Спасибо большое

ОБНОВЛЕНИЕ:

Я пробовал несколько из приведенных ниже методов, но ничего не работает! Нужно ли мне что-то менять для его работы? Я создал для него тестовую страницу:

<html>
<body>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script type="text/javascript">

var count = 0;

$("#update").click(function() {
    count++;
    $("#counter").html("My current count is: "+count);
}

</script>
<button id="update" type="button">Button</button>
<div id="counter">1</div>
</body>
</htlm>
4b9b3361

Ответ 1

Вы не можете использовать ++ для чего-то, что не является переменной, это было бы самым близким, которое вы можете получить:

$('#counter').html(function(i, val) { return +val+1 });

jQuery html() метод может получить и установить значение HTML элемента. Если передана функция, она может обновлять HTML на основе существующего значения. Итак, в контексте вашего кода:

$("#update").click(function() {
    $('#counter').html(function(i, val) { return +val+1 });
}

DEMO: http://jsfiddle.net/marcuswhybrow/zRX2D/2/

Когда дело доходит до синхронизации вашего счетчика на странице со значением счетчика в вашей базе данных, никогда не доверяйте клиенту!. Вы посылаете сигнал с шагом или декретом на серверную сторону script, а не непрерывное значение, такое как 10 или 23.

Однако вы можете отправить запрос AJAX на сервер при изменении HTML-кода вашего счетчика:

$("#update").click(function() {
    $('#counter').html(function(i, val) {
        $.ajax({
            url: '/path/to/script/',
            type: 'POST',
            data: {increment: true},
            success: function() { alert('Request has returned') }
        });
        return +val+1;
    });
}

Ответ 2

$(document).ready(function() {
var count = 0;

  $("#update").click(function() {
    count++;
    $("#counter").html("My current count is: "+count);
  }

});

<div id="counter"></div>

Ответ 3

Это просто

var counter = 0;

$("#update").click(function() {
   counter++;
});

Ответ 4

В нескольких приведенных выше предложениях используются глобальные переменные. Это не является хорошим решением проблемы. Счетчик относится к одному элементу, и вы можете использовать функцию jQuery data для привязки элемента данных к элементу:

$('#counter').data('count', 0);
$('#update').click(function(){
    $('#counter').html(function(){
        var $this = $(this),
            count = $this.data('count') + 1;

        $this.data('count', count);
        return count;
    });
});

Обратите также внимание на то, что для обеспечения более быстрого и быстрого кода кода используется синтаксис обратного вызова html.

Ответ 5

Перейдите на сайт ниже и попробуйте. http://www.counter12.com/

Из приведенной выше ссылки я выбрал один дизайн, который мне нравился на моем сайте, и он предоставил мне div, который я вставил на моей странице html.

Он отлично справился.

Я не отвечаю на вашу проблему в JQuery, но предоставляю альтернативное решение для вашей проблемы.

Ответ 6

Вы пытаетесь установить "++" в элементе jQuery!

Вы можете объявить переменную js

var counter = 0;

и в коде jQuery выполните:

$("#counter").html(counter++);

Ответ 7

Я собираюсь попробовать это следующим образом. Я поместил переменную count внутри функции "onfocus", чтобы она не стала глобальной переменной. Идея состоит в том, чтобы создать счетчик для каждого изображения в блоге tumblr.

$(document).ready(function() {

  $("#image1").onfocus(function() {

  var count;

    if (count == undefined || count == "" || count == 0) {
    var count = 0;
    }

    count++;
    $("#counter1").html("Image Views: " + count);
  }
});

Затем, за пределами тегов script и в нужном месте в теле я добавлю:

<div id="counter1"></div>