0

首先,我知道搜索建议有 jQuery 插件。我问这个的原因是因为我为我的特定需求编写了一个,并且我有兴趣学习如何在 jQuery 中制作脚本(而不仅仅是使用插件)。请参阅我粘贴到 pastebin 的代码——我希望没问题。

原文: http: //pastebin.com/VFuXY4iX

有点jQuerified:http ://pastebin.com/S86ES8bH

我正在努力解决的两件事如下:

-- 原始的(和当前的 jQuery )通过它们的 DOM 子索引访问子节点(参见unhilite()函数)。我还没有找到在 jQuery 中执行此操作的方法。我能找到的最接近的东西是.next("selector"),但是除了 DOM 索引之外,这些元素没有我可以键入的选择器。我正在考虑通过执行以下操作来克服这个问题:

$('.hilited')
    .next('li')
        .addClass('hilited')
    .end()
    .removeClass('hilited');

这会很好用吗?编辑:即使它运行良好,有没有办法访问这样的 DOM 索引(供将来参考)?

-- 其次,我不知道具体如何将键盘事件与 jQuery 绑定(不使用插件,我想避免使用插件 - 再次用于学习目的)。不过,我认为bind()keydown()可能会奏效。

$('#target').keydown(function(event) {
    if (event.keyCode == '40') {
        //next
    } else if (event.keyCode == '40') {
        //previous
    }
)};

有人有什么建议吗?谢谢所以,你是我的最爱!

PS- sajax_do_call 是 Mediawiki AJAX 语法,适用于任何不熟悉的人...

4

1 回答 1

0

我回答了一些我自己的问题。如果我愿意,我可以使用 jQuery 的第 n 个子选择器。其他建议的解决方案确实有效,但我仍然愿意接受建议。

于 2010-07-29T21:01:21.127 回答