2012-04-07 19 views
0

私は、次のクリックイベント

$(".element").click(function() { 
    var idNum = $(this).getID; 
    $('#new-'+idNum).fadeIn();  
}); 

と、次の機能を持っている:私が欲しいもの

function getID() { 
    var elID = $(this).parent().attr('id'); 
    return elID; 
} 

は、.elementをクリックすることができ、それは親のIDです取得し、その後にそのIDを格納することです変数idNum。しかし、これは動作していないようです。私は間違って何をしていますか?

+1

関数を呼び出すには '$(this).getID()'が必要です。今は関数呼び出しの結果ではなく、関数への参照を 'idNum'に代入しています。 –

答えて

3

を代わりに別の関数でこのコードを実行すると、なぜあなたはそれは同じものではないのですか?

$(".element").click(function() { 
    var idNum = $(this).parent().attr('id'); 
    $('#new-'+idNum).fadeIn(); 

    getID(idNum); 
}); 

function getID(idNum) { 
    var newObject = $(body).find(idNum); 
    //Do stuff with newObject 
} 

あなたは(それがjQueryのに組み込まれているオブジェクトの)ネイティブに$(this)を渡すことはできませんので、あなたの代わりにあなたが(ない上記のコードのように)渡す変数の存在をDOMを検索できます。

+0

getIDはこの質問のために単純化したより大きな関数です。申し訳ありませんが、私はそれに留意すべきでした。 – Sam

+0

私の変更された回答には、あなたがしたいことが反映されるはずです。 – cereallarceny

+0

ありがとうございますが、関数自体に$(this)を渡して処理を行い、その戻り値をclick関数内のvarに格納する方法がありますか?私はあなたが提案していることがうまくいくことを知っています、私はちょうど将来の参考のためにこれを行う方法を知りたいと思います。ありがとう。 – Sam

1

なぜ特別な機能が必要なのですか?ただ、やる:

$(".element").click(function() { 
    var idNum = $(this).parent().attr('id'); 
    $('#new-'+idNum).fadeIn();  
}); 
+0

合意してください。 – ryanve

+0

私はむしろ '.prop( 'id')'を使用したい – ThiefMaster

関連する問題