0

<script>タグ内には、これらの機能があります。

$.fn.getRandom = function(min, max) {
    return min + Math.floor(Math.random() * (max - min + 1));
}

function placeRandom() {
    alert(getRandom(1,7));
}

placeRandom()そして、私はそのように関数を呼び出します

$(document).ready(function() {
    placeRandom();
});

これを行うと、

Object expected

エラーと私が書いた行を指します

alert(getRandom(1.7));

さて、私の主な質問は、私があなたに見せているコードに何か問題があるのか​​ 、それとも正しいように見えるのかということです. それが正しいように見える場合は、残りのコード全体を実行して、閉じていない開き括弧を探す必要があると思うので、それが問題である可能性があるためです。はい、私の placeRandom() または getRandom() 関数に問題がありますか、それともこれらの関数以外の別の理由でエラーが発生していますか?

4

3 に答える 3

2

問題は、getRandom関数を定義していることです。jQuery.fn 名前空間に入れています。次のようにコードを整理すると、はるかにうまく機能するはずです。

var getRandom = function(min, max) {
    return min + Math.floor(Math.random() * (max - min + 1));
}

var placeRandom = function() {
    alert(getRandom(1,7));
}

$(document).ready(function() {
    placeRandom();
});

追加情報: jQuery.fn は実際にはプロトタイプですが、この特定のコンテキストでは一般に名前空間と呼ばれます。

于 2013-10-16T14:52:56.823 に答える
1

jQuery 名前空間にバインドgetRandomしています。jQuery オブジェクト インスタンスまたは経由でのみアクセスできます。$.fn.getRandom()

したがって、 のように呼び出せるようにしたい場合を除き$(selector).getRandom()、標準関数として宣言するだけです。

于 2013-10-16T14:52:50.070 に答える
1

getRandom$ 名前空間 (jQuery) にバインドしています。したがって、それを呼び出す$.fn.getRandom(1,7)か、関数を次のように定義する必要があります。

function getRandom(min, max) {
    return min + Math.floor(Math.random() * (max - min + 1));
}
于 2013-10-16T14:54:19.357 に答える