javascript - 通过 1.2.6 上的脚本事件触发 Jquery 自动完成

标签 javascript jquery autocomplete triggers

我正试图从字段外触发 Jquery 自动完成。

我正在运行屏幕上的 Jquery 键盘,因此不会触发正常的 keyup keydown 事件。

我无法使用 Jquery.Event 或 trigger(),因为我受困于 Jquery 1.2.6。

我知道还有其他屏幕键盘,但我测试过的所有其他屏幕键盘都有“延迟”。 fieldselection 增加了一点,但这相当快。只是..没有自动完成触发。

我并没有超过滚动我自己的自动完成,但其余代码非常简单,我只是想确保我没有遗漏一些简单的东西。 :)

fieldselection 是一个支持退格键的修改版本:http://designshack.co.uk/tutorialexamples/vkeyboard/

<script type="text/javascript" src="js/jquery.fieldselection.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// Keeps track of last input that was clicked in.
    $('input[type="text"], textarea').focus(function() {
        selectedInput = $(this);
    });
    // Add autocomplete.
    $('#search-customers-input').autocomplete(
      'js/ps-action.php?searchCustomers=1');
    // Attach action to virtual keyboard keys.
    $('.keypad-literal').click(function() {
        selectedInput.replaceSelection($(this).text(), true);
        // I don't chain these as for some reason it doesn't work.
        selectedInput.focus();
        // Can't use as I'm on 1.2.6
        //var key = $(this).text(); 
        //var e = jQuery.Event("keydown");
        //e.which = key.charCodeAt(0);
        //selectedInput.trigger(\'focus\').trigger(e);
    });
});
</script>
<button type=button class="keypad-key keypad-literal">q</button>
<button type=button class="keypad-key keypad-literal">w</button>
<button type=button class="keypad-key keypad-literal">e</button>
... etc ...
<button type=button class="keypad-key large"
  onClick='selectedInput.parents("form").submit();'>Enter</button>

最佳答案

你尝试过 jQuery.noConflict() 了吗? (此处的文档:http://api.jquery.com/jQuery.noConflict/)

<script type='text/javascript' src='jquery-1.4.2.min.js'></script>
<script type='text/javascript'>
    // create namespace for jquery 1.4.2
    var j142 = $.noConflict(true);
</script>
<script type='text/javascript' src='jquery-1.2.6.min.js'></script>

<script type='text/javascript'>
    // jquery 1.4.2 codes here
    j142(document).ready(function() {
        j142('p#new').text('jquery 1.4.2 yay!');
        });

    // jquery 1.2.6 codes here, falling back to the default $
    $(document).ready(function() {
        $('p#old').text('jquery 1.2.6 yay!');
        });
</script>

关于javascript - 通过 1.2.6 上的脚本事件触发 Jquery 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2311769/

相关文章:

javascript - 使用 iframe 时 Ext js 动态加载库

javascript - 使用 Angular 从弹出模式按钮删除时删除表中特定选定的行

javascript - 将 elfinder 2.x 与 java 连接器一起使用

javascript - 如何使 div 元素可编辑(就像单击它时的文本区域一样)?

Jquery UI 自动完成显示较早文本的响应

html - 如何禁用 iOS Chrome 密码/信用卡自动填充?

javascript - 如何通过由另一个方法填充的方法访问对象的成员?

javascript - 在 Meteor 中等待函数结果的最佳实践?

javascript - 在一个函数中来回更改 id

javascript - jquery 在 jquery ui 自动完成上捕获点击事件