четные данные не меняются

0

вот моя собственная демонстрация практики, она работает хорошо, как я ожидаю. но когда я использую строку 8 (комментарий к моему демо-коду) вместо строки 7, значения входного текста все меняются на 0, что отличается от результата демонстрации demo.

я смотрю на веб-сайт jquery, это только дает мне это

Описание: Необязательный объект данных, переданный методу события, когда текущий обработчик выполнения привязан.

я думаю, что результат использования строки 8 или строки 7 должен быть одинаковым, поскольку я присваивается счету объекта, но это не так. Может кто-нибудь объяснить мне об этом вопросе. кстати, если кто-то сможет реорганизовать мой код, будет еще лучше THANKS !!

вот мой код

var i = 0;
$("#aa").on("click", {
    count : i       
}, 
function(event) {
    var div = $('<div/>');
    var input = $('<input />').attr("value", event.data.count);
    event.data.count++;
    //i++;
        var bt = $('<input />').attr({
            type : "button",
            value : "remove",
        });
        div.append(input);
        div.append(bt);

        var index = $("div").length;
        if (index == 0) {
            $("#aa").after(div);
        } else {
            $("div").last().after(div);
        }

        bt.on('click', function(event) {
            $(this).parent().remove();
        });
});
Теги:

1 ответ

0
Лучший ответ
when the current executing handler is bound.

это важно в разделе. Таким образом, объект будет создан только один раз, во время привязки функции к событию click. Таким образом, изменение i не изменит значение event.data.

Когда вы это сделаете

event.data.count++;

вы на самом деле мутируете объект, и состояние объекта будет сохранено. Вот почему он работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню