关闭jQuery prettyphoto上的键盘导航

时间:2011-10-01 13:53:29

标签: jquery prettyphoto

我们正在使用prettyPhoto:

http://www.no-margin-for-errors.com/projects/prettyphoto-jquery-lightbox-clone/ 对于我们的投资组这允许我们显示视频,图像或SWF。 当我们显示使用箭头键的SWF游戏时,它与prettyPhoto导航冲突。 请参阅我们添加的游戏示例:

http://www.letsdesign.co.uk/#!prettyPhoto/0/ 这在PC上的IE中变得更糟。 但是这个游戏可以在Firefox for Mac上播放,这是我们想要的所有浏览器的状态。

我们希望找到一种方法来关闭PrettyPhoto的导航(通过使用箭头键),因此它不会与任何游戏内控件发生冲突。我们还有其他游戏要添加,但在修复之前我们无法添加它们。有人有解决方案吗? 提前谢谢。

4 个答案:

答案 0 :(得分:2)

尝试通过将“keyboard_shortcuts”参数设置为false来禁用包括(左和右)键盘快捷键后,我尝试覆盖changePage方法并从changepicturecallback方法调用该方法。我发现这样可以轻松选择prettyPhoto的不同体验,而无需编辑核心文件(我绝不会推荐)。

$("a[rel^='prettyPhoto']").prettyPhoto({
  changepicturecallback: function(){
    $.prettyPhoto.changePage = function(){};
  },
});

看看prettyPhoto params,它们在正确组合时非常强大。

答案 1 :(得分:1)

在Prettyphoto的JavaScript文件中,将 keyboard_shortcuts 设置为 false

答案 2 :(得分:1)

我发现了一种禁用箭头键功能的非常黑客的方法。在我的jquery.prettyPhoto.js文件中,我刚评论了$.prettyPhoto.changePage('previous');$.prettyPhoto.changePage('next');

这意味着箭头导航根本不起作用,但无论如何我都不需要它。

答案 3 :(得分:0)

不幸的是,有一个错误。我修改了代码,现在效果很好。

这是错误。有一段这样的代码:

switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous");t.preventDefault();break;case 39:e.prettyPhoto.changePage("next");t.preventDefault();break;case 27:if(!settings.modal)e.prettyPhoto.close();t.preventDefault();break

通过以下内容进行更改

if (settings.keyboard_shortcuts) { switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous");t.preventDefault();break;case 39:e.prettyPhoto.changePage("next");t.preventDefault();break;case 27:if(!settings.modal)e.prettyPhoto.close();t.preventDefault();break}

现在作者的设置名为keyboard_shortcuts,如果将其设置为false,将会很有效。

这对缩小的代码有效,我没有检查非缩小代码中是否存在错误(如果可用)。

祝你好运!

乔治

相关问题