我正在尝试从字段外部触发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>
答案 0 :(得分:0)
你试试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>