【发布时间】:2014-10-23 09:00:47
【问题描述】:
我有一个由谷歌提供的只有一个搜索框的页面
<gcse:search></gcse:search>
现在,当我在搜索框中输入内容并按 Enter 键时,我希望在返回搜索结果时触发我的脚本运行。
到目前为止我尝试过的事情
这里我尝试使用提交事件来触发我的脚本
$(document).on('submit', 'input', function(e) {
alert('trig');
}
这里我试图抓住回车键,因为我删除了搜索按钮
$(document).keypress(function(e) {
alert('triggered');
});
这里我试图将焦点放在表单 id 上
$('#gsc-i-id1').focus().trigger(function(e) {
alert('triggered');
});
全部失败
这是 gcse 标签创建的 id 和类的列表
#___gcse_0
.gsc-control-cse .gsc-control-cse-en
.gsc-control-wrapper-cse
.gsc-search-box .gsc-search-box-tools
.gsc-search-box
.gsc-input
#gsc-iw-id1
#gs_id50
#gs_tti50
#gsc-i-id1
【问题讨论】:
-
尝试像
$(document).on("keypress", "#gsc-i-id1", function(){alert("T")})那样进行委派。就像你的第一个例子一样,我不认为input是submitted -
这确实会捕获密钥并触发事件。我将如何仅在按下输入时触发它? $(document).on("keypress", "#gsc-i-id1", function(e){if(e == 13) { alert("T")}}) ???
-
if ( event.which == 13 ) { alert("T"); }。 Documentation 建议keyup更好地使用这样的功能(它的工作方式相同,只需更改事件名称)。 -
另外,如果您想在同一事件上触发其他内容,请考虑使用
event.preventDefault();。 -
你找到答案了吗?
标签: javascript jquery google-custom-search