Nin*_*aNa 5 javascript jquery scroll hyperlink
我在页面上有一个JQuery滚动条,其中每个项目都是带有id的div.每个div都有一个指向滚动条中下一个div的链接(全部在同一页面上)
$('a.panel').click(function () {
};
Run Code Online (Sandbox Code Playgroud)
我在"面板"类的所有链接上都有一个点击事件,我在其中检查了哪些链接被点击,然后相应地执行一些ajax处理:
if($(this).attr('href')=="#item2")
{
//do some processsing
}
Run Code Online (Sandbox Code Playgroud)
一旦处理完成,我使用scrollTo JQuery方法滚动到下一个div
我需要让用户可以按回车键而不是点击链接.现在问题是:a.我在同一页面上有几个链接,都需要有这种行为.湾 我需要区分哪个链接触发了click事件并进行了一些服务器端处理.
这有可能吗?
我很感激快速而有用的回复!感谢一百万的帮助!
Focus + enter 将触发click事件,但仅当锚具有href属性时(至少在某些浏览器中,如最新的Firefox).作品:
$('<a />').attr('href', '#anythingWillDo').on('click', function () {
alert('Has href so can be triggered via keyboard.');
// suppress hash update if desired
return false;
}).text('Works').appendTo('body');
Run Code Online (Sandbox Code Playgroud)
不起作用(浏览器可能认为没有采取任何行动):
$('<a />').on('click', function () {
alert('No href so can\'t be triggered via keyboard.');
}).text('Doesn\'t work').appendTo('body');
Run Code Online (Sandbox Code Playgroud)
trigger()按下Enter键后,您可以单击想要的任何元素的click事件。例:
$(document).keypress(function(e) {
if ((e.keyCode || e.which) == 13) {
// Enter key pressed
$('a').trigger('click');
}
});
$('a').click(function(e) {
e.preventDefault();
// Link clicked
});
Run Code Online (Sandbox Code Playgroud)
演示:http://jsfiddle.net/eHXwz/1/
您只需要找出触发点击的特定元素即可,但这取决于您的操作方式。我会说我真的不建议这样做,但是我会给您带来疑问的好处。
我认为,更好的选择是改为focus()应单击该链接,并让用户可以选择按Enter,这将始终触发click事件。
我想专注于链接,但是不熟悉该怎么做,您能解释一下吗?
只需使用$(element).focus()。但是再次,您将必须更加具体,并有一种方法确定哪个元素应该获得焦点以及何时获得焦点。当然,用户可能会采取会使链接失去焦点的操作,例如单击其他位置。我不知道您的应用程序的运行方式或行为,因此,请按照您认为最好的方式运行,但是请记住,用户已经期望浏览器具有某种行为,除非您有可能,否则他们将不会意识到需要按“ Enter”键。告诉他们。
如果您确实选择使用“按下Enter”方法而不是将焦点放在链接上,那么您可能也希望bind()同时unbind()使用keypress函数,因此在不需要它时不会调用它。
有关:
使用e.target或this关键字来确定哪个链接触发了事件。
$('a.panel').click(function (e) {
//e.target or this will give you the element which triggered this event.
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14248 次 |
| 最近记录: |