$('.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();
});
精彩评论