-6

jQueryで書き直したいランダムな文字列を生成するjavascriptがあります。

function randomString() {
        var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz!@#$%^&*()_+";
        var string_length = 8;
        var randomStr = '';
        for (var i=0; i<string_length; i++) {
            var rnum = Math.floor(Math.random() * chars.length);
            randomStr += chars.substring(rnum,rnum+1);
        }
        document.getElementById('randomfield').innerHTML=randomStr;
    }

このようにラップすることは可能ですか $('.classname').click(function()

4

3 に答える 3

2

まず最初に、jQuery は JavaScript であるため、書き直す必要はありません。関数を書き直す必要があるのは、再利用性を高めるためです。

// Instead of apply a random string value to a specific DOM element
// .. create a random string and return its value

function getRandomString() {
    var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz!@#$%^&*()_+";
    var string_length = 8;
    var randomStr = '';
    for (var i=0; i<string_length; i++) {
        var rnum = Math.floor(Math.random() * chars.length);
        randomStr += chars.substring(rnum,rnum+1);
    }
    return randomStr;
}

// Quite useful, because we can now use it whenever we want. 
// For example use it within a click handler function:

$('#button').on('click', function () {
    $('#randomfield').text(getRandomString());        
});
于 2013-11-13T21:00:31.063 に答える
2

あなたのコメントに基づいて、クリックされたものの参照を使用したいと考えています。したがって、関数を呼び出します

$('.className').click(randomString);

これをオブジェクトに設定するので、randomString 内で使用できます$(this).text(randomStr);


    function randomString() {
        var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz!@#$%^&*()_+";
        var string_length = 8;
        var randomStr = '';
        for (var i=0; i<string_length; i++) {
            var rnum = Math.floor(Math.random() * chars.length);
            randomStr += chars.substring(rnum,rnum+1);
        }
        $(this).text(randomStr);
    }


    $('.className').click(randomString);
于 2013-11-13T21:01:11.087 に答える
0

ウィジェット ファクトリを使用すると、jQuery 関数を追加できます。それはこのようになります。

$.widget('nt.randomString', {
     var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz!@#$%^&*()_+";
        var string_length = 8;
        var randomStr = '';
        for (var i=0; i<string_length; i++) {
            var rnum = Math.floor(Math.random() * chars.length);
            randomStr += chars.substring(rnum,rnum+1);
});
$("#randomfield").randomString.text()

これはウィジェットファクトリーの使用に関するチュートリアルですhttp://net.tutsplus.com/tutorials/javascript-ajax/an-in-depth-review-of-jquerys-widget-factory/

于 2013-11-13T21:05:33.290 に答える