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

您的代码几乎就在那里。这是我能够完成的一个实现,它接受一个代码,在本例中是字符串“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 回答