1

ストーリー: 今後の作業のために JQuery('') を配列に格納する必要があります。

私の半機能的な解決策(正しく機能していません):

    var myArray = new Array();
    var $selected_place;

    function addPlace(){
        var new_place = jQuery('<div/>', {
            class: 'place'
        });

        new_place.click(function(){
             doSomething($(this));
        });

        myArray[myArray.length] = new_place;
    }

問題:

function doSomething(link) {
    var number;
    for (var i = 0; i < myArray.length; i++){
        if (myArray[i] == link){
            number= i;
            break;
        } //end of if
    } //end of for
    alert(number);
} //end of function

アラートは常に「未定義」のみを返します。

ソリューション:

$(this) をグローバル変数に置き換えると問題が解決し、正常に機能するようになりました。$selected_place = new_place; doSomething メソッド/関数では、if ステートメント myArray[i] == $selected_place

4

2 に答える 2

0

これは、myArrayに$selected_placeの値が含まれていないことが原因である可能性があります。関数を間違った順序で呼び出している可能性があります。

しかし、ちょっとしたこと:

あなたはmyArray.push(new_place)達成するために使用することができますmyArray[myArray.length] = new_place;

于 2012-11-02T14:52:23.760 に答える
0

selected_place および/または myArray が空です。関数 doSomething() に引数として渡します

于 2012-11-02T14:50:59.523 に答える