Запустить автозаполнение Jquery через сценарий 1.2.6 - PullRequest
2 голосов
/ 22 февраля 2010

Я пытаюсь вызвать автозаполнение Jquery вне поля.

Я использую экранную клавиатуру Jquery, поэтому обычные события нажатия клавиш не запускаются.

Я не могу использовать 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>

1 Ответ

0 голосов
/ 22 февраля 2010

Вы пробовали 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>
...