1

のIDを取得しようとしていますitem1が、以下のコードでIDが返されません。高レベルの関数のIDを取得する方法はありますか?

コードがのIDを取得しようとしていると思いますがpopup、それは不要であり、存在しません。上位の関数のIDを取得できますか、それとも下位の関数にパラメーターとして渡すことができますか?

$(".item1").live ("click" ,function(){
    $('.popup_pre_loading').css('display','none');
        $('.popup').fadeIn( 800, function(){
        alert((this).attr('id'));//need this for URL param
      });
      return false;
});

このコードは、アラートボックスがの関数内に直接ある場合に機能することに注意してくださいitem

4

3 に答える 3

7

参照を外部関数に格納し、thisそれを内部関数で参照するだけです。

$(".item1").live ("click" ,function() {
    var self = this;
    $('.popup_pre_loading').css('display','none');
    $('.popup').fadeIn( 800, function(){
        alert(self.id);
    });
    return false;
});

必要ないことに注意してください$(self).attr('id')-必要なだけself.idです!

于 2012-04-27T13:30:02.600 に答える
3

'関数内に直接ある場合に機能するというあなたの理解に基づいてitem、関数内でそれが必要だと思いますfadeIn。これを行う最も簡単な方法は、関数内の変数に割り当て、clickその変数を関数内で使用することですfadeIn

$(".item1").live ("click" ,function(){
    var item1id = $(this).attr('id');
    $('.popup_pre_loading').css('display','none');
        $('.popup').fadeIn( 800, function(){
        alert(item1id); //need this for URL param
      });
      return false;
});
于 2012-04-27T13:30:11.260 に答える
2
$(".item1").live ("click" ,function(){
    var $item1 = $(this);
    $('.popup_pre_loading').css('display','none');
    $('.popup').fadeIn( 800, function(){
        alert((this).attr('id'));//need this for URL param
        alert($item1.attr('id'));
      });
      return false;
});
于 2012-04-27T13:30:07.610 に答える