Настройте плагин jQuery.aptags - щелкните мышкой, чтобы отправить из списка .ac_results - PullRequest
1 голос
/ 18 апреля 2010

Я использую jquery.autocomplete.js и jquery.apitags , чтобы выбрать несколько элементов из div (.ac_results). Это прекрасно работает, и я могу выбрать несколько элементов и т.д. Однако плагин jquery-aptags срабатывает только при нажатии Enter. Это может сбить с толку некоторых пользователей, если они используют мышь для нажатия вместо стрелок / ввода на клавиатуре.

Я думаю, что это код внутри jquery.aptags, который отправляет тег.

//
// Hook to the keypress event.
//            
$(this).bind('keypress', {
    __c: __c
}, function (e) {

    var c = '';
    var i = 0;

    var v = $(this).val();

    if (e.keyCode == 13) {
        e.stopPropagation();
        e.preventDefault();
        __createSpans(this, v, e.data.__c, true);
    }

});

Мне интересно, можно ли вызвать метод непосредственно из нового события.

  $('.ac_results > ul > li').livequery(function() {
    $(this).bind('click', function() {
      $('#address_city'). //how do I fire the "enter" event from here?
    }); 
  });

Есть мысли?

1 Ответ

1 голос
/ 18 апреля 2010

Замените фрагмент, предоставленный ниже, и он должен работать так, как вы хотите:

$(this).bind('keypress click', {
    __c: __c
}, function (e) {

    var c = '';
    var i = 0;

    var v = $(this).val();

    // if enter is pressed, or if element is clicked
    if (e.keyCode == 13 || e.type == 'click') {
        e.stopPropagation();
        e.preventDefault();
        __createSpans(this, v, e.data.__c, true);
    }

});

Единственные два изменения, которые я сделал:

  • Привязка к событию click в дополнение к событию нажатия клавиши.
  • Введите последнее условие, если нажата кнопка ввода или тип события - «щелчок».
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...