2

このスクリプトを関数として使用したいと思います:

jQuery(function ($) {
    var kkeys = [],
        login = '76,79,71,73,78'; //login
    $(document).keydown(function (e) {
        kkeys.push(e.keyCode);
        if (kkeys.toString().indexOf(login) >= 0) {
            $(document).unbind('keydown', arguments.callee);
            return hs.htmlExpand(this, {
                contentId: 'highslide-html-loginform',
                wrapperClassName: 'mod_cdlogin',
                outlineType: 'rounded-white',
                align: 'auto',
                anchor: 'auto',
                dimmingOpacity: 0,
                slideshowGroup: 'mod_cdlogin_loginform'
            })
        }
    });
});

したがって、たとえば、js 部分にこのコードを配置して、別のファイルの関数を呼び出すことができますcodelogin('mycode')。その場合、「mycode」は 76,79,71,73,78 になります。私は多くのことを試しましたが、うまくいきません。スクリプト自体は問題なく動作しますが、私は jQuery の操作に慣れていないため、それが問題になる可能性があります。それを行う方法を探しましたが、ちょっと迷ってしまいました。どんな助けでも大歓迎です。

4

2 に答える 2

1

コードを関数に入れて、ファイルの他のスクリプトブロックから呼び出すことができます。

<script>


jQuery(function($){

    function YourFunName(myCode){
    {
    var kkeys = [];     
    login = myCode;//login
    $(document).keydown(function(e)
    {
    kkeys.push( e.keyCode );
    if( kkeys.toString().indexOf( login ) >= 0 )
    {
    $(document).unbind('keydown',arguments.callee);
    return hs.htmlExpand(this, { contentId: 'highslide-html-loginform', wrapperClassName: 'mod_cdlogin', outlineType: 'rounded-white', align: 'auto', anchor: 'auto', dimmingOpacity: 0, slideshowGroup: 'mod_cdlogin_loginform' })
    }
    });
    }

     YourFunName('76,79,71,73,78');
});

</script>
于 2012-11-20T15:43:44.760 に答える
1

あなたのコードはもうすぐそこにあります。これは、コードを受け入れることができた実装の 1 つです。この場合は、文字列「jonathan」、コールバック関数、および操作するオプションの要素です。デフォルトでは、document他のオプションが要求されていない場合、コードはオブジェクトにバインドされます。

// When 'jonathan' is entered, fire off alertSuccess
bindcode ("jonathan", alertSuccess);

// Our callback function
function alertSuccess () {
    alert("You did it!");
}

// The bindcode function takes a code, a callback, and an optional element
function bindcode( code, callback, element ) {
    var input = [];
    // When the keypress event occurs on either your element, or the document
    $(element || document).on("keypress", function(e){
        // Push the new character onto the input array
        input.push(String.fromCharCode(e.which));
        // Convert to a string and check for presence of code
        if (input.join("").indexOf(code) > -1) {
            // Unbind the keypress event, and fire off callback
            $(this).off("keypress");
            callback();
        }
    });
}

デモ: http://jsfiddle.net/rQU4A/

于 2012-11-20T16:04:21.387 に答える