自定义jQuery.aptags插件-鼠标单击submit from.ac_结果列表

自定义jQuery.aptags插件-鼠标单击submit from.ac_结果列表,jquery,autocomplete,Jquery,Autocomplete,我正在使用and从一个div(.ac_results)中选择一些元素。这非常有效,我可以选择多个元素等。但是jquery aptags插件只有在按下enter键时才会启动。如果某些用户使用鼠标单击而不是键盘上的箭头/回车键,这可能会让他们感到困惑 我认为这是jquery.aptags中提交标记的代码 // // Hook to the keypress event. // $(this).bind('keypress', { __c: __c }, functio

我正在使用and从一个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?
    }); 
  });

有什么想法吗

将您提供的代码段替换为以下代码段,该代码段应能正常工作:

$(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事件
  • 如果按Enter键或事件类型为“单击”,则输入最后一个条件

将您提供的代码段替换为下面的代码段,它应该可以按照您的要求工作:

$(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事件
  • 如果按Enter键或事件类型为“单击”,则输入最后一个条件

有一个小问题:当用户在输入字段-.ac_results中键入时,Autocomplete会在页面底部插入一个div。起初,我以为我可以复制代码并为.ac_results/单击并输入/输入一个块。但是,每次用户在输入字段中键入时,.ac_结果都会被替换,因此会丢失事件。如果我理解正确,mouseclick事件需要通过livequery附加到类。有什么建议吗?有一个小问题:当用户在输入字段中键入-.ac_results时,Autocomplete会在页面底部插入一个div。起初,我以为我可以复制代码,并为.ac_results/单击并输入/输入设置一个块。但是,每次用户在输入字段中键入时,.ac_结果都会被替换,因此会丢失事件。如果我理解正确,mouseclick事件需要通过livequery附加到类。有什么建议吗?