我需要触发点击一些按键操作,如果它是我的键盘脚本上的向上或向下键将从指定元素中删除一些类。所以按键正在工作,但触发和向上按下不是,这是我的代码,这是求助。
$('.main_search_field').keypress(function(evt){
$('.live_search_plugin').addClass('visible');
var scroll_pane = $('.scroll-pane');
scroll_pane.click();
scroll_pane.trigger('click');
if (evt.keyCode == 40) {
$('.live_search_list ul li').removeClass('active');
}
});
答案 0 :(得分:3)
您可以尝试以下代码:
var e = jQuery.Event("keypress");
e.which = 50;
$(".main_search_field").trigger(e);
在e.which
中输入所需字符的代码。
答案 1 :(得分:0)
你必须像这样检查evt按键:
if (evt.which == 40) { }
使用按键时,通常我会在运行函数内的任何代码之前检查我要与哪个键进行交互。如果您不这样做,您的代码将使用任何按键运行。
答案 2 :(得分:0)
.keypress()
可能不是您的最佳解决方案,您最好使用keydown()
和keyup()
,或使用完整版:.bind('keydown', handler)
(同上密钥)
来自jquery docs:
注意:由于任何官方规范都没有涵盖按键事件,因此使用它时遇到的实际行为可能因浏览器,浏览器版本和平台而异。 http://api.jquery.com/keypress/
.click()
是.trigger("click")
的简写,你使用它很好,但你真的在$('.scroll-pane)
上有一个点击处理程序吗?
您的代码将(假设浏览器依赖性)导致在$('.scroll-pane')
上触发两次点击,然后评估if()
。但是你还没有向我们展示scroll-pane
的点击处理程序,所以我们无法看出这是否有问题。