3

実装したいのですが、この部分が原因でjQuery1.7.2raptorize-Pluginでは機能しません。

else if(options.enterOn == 'konami-code'){
            var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
            $(window).bind("keydown.raptorz", function(e){
                kkeys.push( e.keyCode );
                if ( kkeys.toString().indexOf( konami ) >= 0 ) {
                    init();
                    $(window).unbind('keydown.raptorz');
                }
            }, true);

私が使用するbutton-versionとそれは動作します。何が問題なのですか?

4

3 に答える 3

3

http://www.zurb.com/playground/javascripts/plugins/jquery.raptorize.1.0.jsの93行目の.bind()は、バブリングを防ぐために3番目のパラメーターを使用しています。ウィンドウでキーダウンイベントを探していますが、新しいjQueryバージョンではそれが壊れています。その3番目のパラメーターを削除すると、1.7.2で機能します。

また、オプションを正しく設定していることを確認してください。例:

$('.myButton').raptorize({
   'enterOn' : 'konami-code'
});
于 2012-07-23T11:11:05.793 に答える
0

これには、jQueryの代わりにMousetrapライブラリの使用を検討することをお勧めします。

上記のリンク先のページには、JSコードの1行で実行されるコナミコマンドの例もあります。

于 2012-07-24T07:59:58.050 に答える
0

オリジナルのraptorizeプラグインがリリースされてから(2010年)、長い時間が経ちましたが、残念ながら、新しいjQueryバージョンでは壊れています。jQueryバージョン1.7+、2.x、および3.xをサポートする更新された実装(https://github.com/randomvlad/raptorize-jquery )があり、いくつかの追加の改善があります。

具体的には、のロジックkonami-codeが調整されました。

} else if (options.enterOn === 'konami-code') {
    var keysPressed = [];
    var konamiCode = "38,38,40,40,37,39,37,39,66,65";
    $(window).on("keydown.raptorz", function (e) {
        keysPressed.push(e.keyCode);

        if (keysPressed.length > 10) {
            keysPressed = keysPressed.slice(1);
        }

        if (keysPressed.toString() === konamiCode) {
            animateRaptor();
        }
    });
}

変更点:

  • 非推奨のjQuerybind()を。に置き換えon()ます。
  • コナミコマンドを複数回使用できるようにします。
  • 最後の10個のキーストロークのみを追跡および比較するように最適化します。

免責事項:私は更新されたraptorize 2.0プラグインの「作成者」です。このプラグイン自体は、ZURB(https://zurb.com/playground/jquery-raptorize)による元のプラグインに基づいています。

于 2021-12-22T20:48:55.990 に答える