开发者

jQuery get source element in callback

开发者 https://www.devze.com 2023-01-06 12:22 出处:网络
$(\'.myElem\').live(\'click\', function() { $(this).hide(500, function() { $(this).siblings开发者_如何学Python(\'.myOtherElem\').show();
$('.myElem').live('click', function() {
    $(this).hide(500, function() {
        $(this).siblings开发者_如何学Python('.myOtherElem').show();
    });
});

The above doesn't work because $(this) is no longer in correct scope in the callback. How do I pass my original source element into the callback?


Actually your code should work.

To access this within an inner javascript method you might store the reference in the outer method scope:

$('.myElem').on('click', function() {

   var myElem = this;    
    $(this).hide(500, function() {
        $(myElem).siblings('.myOtherElem').show();
    });

});

However in most jQuery methods this is referring to the selector or element used:

$('.myElem').on('click', function() {
    // This refers to the clicked element
    $(this).hide(500, function() {
       // This refers to the clicked element as well 
       $(this).siblings('.myOtherElem').show();
    });    
});


$('.myElem').live('click', function() { 
    var $this = $(this);
    $this.hide(500, function() { 
        $this.siblings('.myOtherElem').show(); 
    }); 
}); 


$('.myElem').live('click', function() {
    $(this).hide(500);
    $(this).siblings('.myOtherElem').show();
});
0

精彩评论

暂无评论...
验证码 换一张
取 消