Проблемы .append.Лимит .append - PullRequest
       13

Проблемы .append.Лимит .append

0 голосов
/ 27 декабря 2011

У меня есть простое текстовое поле html, подключенное к .keypress(funcion(){...}, которое заставляет значок jquery показываться рядом с ним всякий раз, когда я нажимаю клавишу на клавиатуре.Цель этого - сделать так, чтобы при вводе некоторого ввода в текстовое поле появлялся значок jquery ui, чтобы при щелчке по значку он сохранял введенные пользователем данные

... Но мы все знаем, что компьютерные языки имеют тенденцию быть буквальными.Каждый раз, когда я нажимаю клавишу ... появляется новый значок сохранения ... КАЖДЫЙ РАЗ.Пожалуйста, помогите мне, так как я застрял в этой части1009 *

внутри .append, он отключается при его появлении (отключает наведение, оставляя тем самым один цвет).Если это знание о вас, как включить наведение, когда оно идет из приложения, и вы готовы поделиться им, было бы неплохо.

        $(".solo1").keypress(function () {
        $("#kyo").append('<div class="ui-state-default ui-corner-all saveButton" title="Save" style="float:left; height:20px;" ><span class="ui-icon ui-icon-disk"></span></div><br />');
    });
</script>
<div id="kyo"> <input class="solo1" /> </div>

Ответы [ 3 ]

1 голос
/ 27 декабря 2011

У вас есть несколько разных вариантов.Во-первых, добавление кнопки при нажатии клавиш кажется слишком частым.Вы можете добавить кнопку в другое событие, например, .change или .blur.Тем не менее, с вашим текущим кодом все, что вам нужно сделать, это проверить, существует ли кнопка, если она не добавляет ее.

$kyo = $("#kyo");  
if( $kyo.find('.saveButton').length === 0 ) // if button doesn't exist
    $kyo.append('<div class="ui-state-default ui-corner-all saveButton" title="Save" style="float:left; height:20px;" ><span class="ui-icon ui-icon-disk"></span></div><br />');
1 голос
/ 27 декабря 2011

Вы можете просто создать все кнопки при загрузке страницы и показать соответствующую кнопку при нажатии клавиши.Затем снова спрячьте, когда нажмете кнопку: http://jsfiddle.net/jC7TR/1/.

$('.solo1').after('<div class="ui-state-default ui-corner-all saveButton" title="Save" style="float:left; height:20px;" ><span class="ui-icon ui-icon-disk"></span></div><br />')
.keypress(function() {
     $(this).next('.saveButton').show();
});

$('.saveButton').hide().click(function() {
    $(this).hide();
});
0 голосов
/ 27 декабря 2011

Вместо keypress могли бы вы использовать .blur(), чтобы значок появлялся после того, как они щелкнули вдали от текстового поля?

...