【问题标题】:jquery: load ajax request on keyup - no arrowkeys?jquery:在 keyup 上加载 ajax 请求 - 没有箭头键?
【发布时间】:2011-01-17 18:17:46
【问题描述】:

大家好, 我有这种奇怪的情况,我在输入输入字段时通过 jquery load() 方法加载元素。在每次按键时,我都会触发一个加载特定页面的 doSearch() 函数。如果按下箭头键,我不希望触发此 doSearch() 函数,但我需要箭头键来浏览加载的元素。

这是我现在的代码结构。正如您在 doSearch() 函数中看到的那样,我正在针对向上或向下箭头键进行测试。如果按下其中之一,则不会触发 load() 方法。但是,如果按下另一个键并且加载方法返回结果,我需要向上和向下箭头键来浏览加载的结果。

var searchTimer = 0;

$('.searchbox').keyup(function(e) {

    switch (e.keyCode) {
        //case 13: // Enter
        //case 38: // Up
        //case 40: // Down
        break;

        default:
        if (searchTimer != 0) {
            clearTimeout(searchTimer);
        }

        searchTimer = setTimeout(function () {
            doSearch(e.keyCode);
        }, 250);
    }

});

function doSearch(keyCode) {

    if ($('.searchbox').val() != '') {

        if (keyCode != 38 && keyCode != 40) {

            searchTimer = 0;

            $('#searchresults').load('/sitemap/' + ' #inner', function() {

                //modify loaded elements

                //key navigation through elements with UP and DOWN arrow keys

            });

        }
    }
}

知道如何解决这个问题吗? 感谢您的帮助。

问候马特

【问题讨论】:

    标签: jquery ajax search onkeyup


    【解决方案1】:

    如果你使用“preventDefaut()”会怎样?

    switch (e.keyCode) { 
        case 13: // Enter 
        case 38: e.preventDefault() // Up 
        case 40: e.preventDefault()// Down 
        break; 
    

    我想这会解决你的问题。

    【讨论】:

    • 不,它没有!我想你对我的问题有错误的想法!我需要找到一种方法,不使用向上和向下箭头触发加载方法,但如果加载方法返回某些内容,则能够使用它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多