用javascript模拟左右方向键事件

发布于 2024-10-29 17:45:38 字数 96 浏览 2 评论 0原文

我正在使用 Slide.html5rocks.com 框架,并且尝试在标签链接内使用 img 标签,但无法使用 JavaScript onclick 来模拟左右键事件来更改幻灯片

I'm using the slide.html5rocks.com framework and I'm trying to use to img tags inside of a tag links and I can't get the JavaScript onclick to simulate the left and right key events to change slides

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱的那么颓废 2024-11-05 17:45:39

您正在寻找能够调度事件的东西。这是应该有用的东西:

function fireKey(el)
{
    //Set key to corresponding code. This one is set to the left arrow key.
    var key = 37;
    if(document.createEventObject)
    {
        var eventObj = document.createEventObject();
        eventObj.keyCode = key;
        el.fireEvent("onkeydown", eventObj);   
    }else if(document.createEvent)
    {
        var eventObj = document.createEvent("Events");
        eventObj.initEvent("keydown", true, true);
        eventObj.which = key;
        el.dispatchEvent(eventObj);
    }
} 

我用它做了一个很酷的小界面测试,您可能会感兴趣。它的外观如下: http://jsfiddle.net/FvCut/6/

经测试可在 Firefox 中运行3.6、Opera 11、Safari 5、IE 8 和 IE 7/IE Quirks 模式。值得注意的是:当您像大多数浏览器一样按住某个键时,Opera 11 不会触发重复的“keydown”事件。

You're looking for something that will dispatch an event. Here's something that should work:

function fireKey(el)
{
    //Set key to corresponding code. This one is set to the left arrow key.
    var key = 37;
    if(document.createEventObject)
    {
        var eventObj = document.createEventObject();
        eventObj.keyCode = key;
        el.fireEvent("onkeydown", eventObj);   
    }else if(document.createEvent)
    {
        var eventObj = document.createEvent("Events");
        eventObj.initEvent("keydown", true, true);
        eventObj.which = key;
        el.dispatchEvent(eventObj);
    }
} 

I made a cool little interface test with it that will probably interest you. Here's how it looks: http://jsfiddle.net/FvCut/6/

Tested as working in Firefox 3.6, Opera 11, Safari 5, IE 8, and IE 7/IE Quirks Mode. Of note: Opera 11 doesn't fire repeated "keydown" events when you hold a key down like most browsers.

画尸师 2024-11-05 17:45:39

您如何模拟该事件? document.dispatchEvent 不适用于所有浏览器。
您可以使用以下方法测试该功能:typeOf(document.dispatchEvent) != 'undefined'

How are you simulating the event? document.dispatchEvent doesn't work in all browsers.
You can test the feature using this: typeOf(document.dispatchEvent) != 'undefined'

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文