Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jquery中的内部选择器回调函数中获取当前父选择器的实例_Javascript_Jquery - Fatal编程技术网

Javascript 如何在jquery中的内部选择器回调函数中获取当前父选择器的实例

Javascript 如何在jquery中的内部选择器回调函数中获取当前父选择器的实例,javascript,jquery,Javascript,Jquery,如果单击的元素(即“.sbSelector”)与窗口底部的距离小于200px,我尝试在单击“.sbSelector”时将窗口向下滚动200px $(document).on('click', '.sbSelector', function(){ var windowHeight = $(window).height(); var drpdwnOffsetTop = parseFloat($(this).offset().top - $(window).scrollTop())

如果单击的元素(即“.sbSelector”)与窗口底部的距离小于200px,我尝试在单击“.sbSelector”时将窗口向下滚动200px

$(document).on('click', '.sbSelector', function(){
     var windowHeight = $(window).height();
     var drpdwnOffsetTop = parseFloat($(this).offset().top - $(window).scrollTop());
     if(parseFloat(windowHeight - drpdwnOffsetTop) < 200){
         var temp = $(window).scrollTop() + 200;
         $('html, body').animate({scrollTop: temp}, 500, function(){
             **// How to get the instance of current '.sbSelector' here**
             **// $(this) ll point to $(html,body), where as i need a reference to the current $('.sbSelector')**
         });

     }
 });
$(文档).on('单击','.sbSelector',函数(){
var windowHeight=$(window.height();
var drpdwnOffsetTop=parseFloat($(this.offset().top-$(window.scrollTop());
如果(parseFloat(窗口高度-drpdwnOffsetTop)<200){
var temp=$(窗口).scrollTop()+200;
$('html,body')。设置动画({scrollTop:temp},500,function(){
**//如何在此处获取当前“.sbSelector”的实例**
**//$(这)将指向$(html,body),其中我需要对当前$('.sbSelector')的引用**
});
}
});
我的问题是如何在$('html,body').animate函数回调中获取当前'.sbSelector'的实例。Bcoz文档中可能有许多“.sbSelector”元素,我想指出动画回调中当前单击的“.sbSelector”。

有关全局变量的详细信息,请查看

$(document).on('click', '.sbSelector', function(){
     var windowHeight = $(window).height();
     var drpdwnOffsetTop = parseFloat($(this).offset().top - $(window).scrollTop());
     var that = $(this);
     if(parseFloat(windowHeight - drpdwnOffsetTop) < 200){
         var temp = $(window).scrollTop() + 200;
         $('html, body').animate({scrollTop: temp}, 500, function(){
             console.log(that);
         });
     }
 });
$(文档).on('单击','.sbSelector',函数(){
var windowHeight=$(window.height();
var drpdwnOffsetTop=parseFloat($(this.offset().top-$(window.scrollTop());
var,该值=$(此值);
如果(parseFloat(窗口高度-drpdwnOffsetTop)<200){
var temp=$(窗口).scrollTop()+200;
$('html,body')。设置动画({scrollTop:temp},500,function(){
console.log(那个);
});
}
});
或者,您可以将其绑定到:

$(文档).on('单击','.sbSelector',函数(){
var windowHeight=$(window.height();
var drpdwnOffsetTop=parseFloat($(this.offset().top-$(window.scrollTop());
window.that=$(this);
如果(parseFloat(窗口高度-drpdwnOffsetTop)<200){
var temp=$(窗口).scrollTop()+200;
$('html,body')。设置动画({scrollTop:temp},500,function(){
console.log(window.that);
});
}
});
注意:在窗口对象上显式设置时,注意不要覆盖窗口对象的当前属性。此外,这在某些环境中不起作用,例如
node.js

查看以获取有关全局变量的更多信息

$(document).on('click', '.sbSelector', function(){
     var windowHeight = $(window).height();
     var drpdwnOffsetTop = parseFloat($(this).offset().top - $(window).scrollTop());
     var that = $(this);
     if(parseFloat(windowHeight - drpdwnOffsetTop) < 200){
         var temp = $(window).scrollTop() + 200;
         $('html, body').animate({scrollTop: temp}, 500, function(){
             console.log(that);
         });
     }
 });
$(文档).on('单击','.sbSelector',函数(){
var windowHeight=$(window.height();
var drpdwnOffsetTop=parseFloat($(this.offset().top-$(window.scrollTop());
var,该值=$(此值);
如果(parseFloat(窗口高度-drpdwnOffsetTop)<200){
var temp=$(窗口).scrollTop()+200;
$('html,body')。设置动画({scrollTop:temp},500,function(){
console.log(那个);
});
}
});
或者,您可以将其绑定到:

$(文档).on('单击','.sbSelector',函数(){
var windowHeight=$(window.height();
var drpdwnOffsetTop=parseFloat($(this.offset().top-$(window.scrollTop());
window.that=$(this);
如果(parseFloat(窗口高度-drpdwnOffsetTop)<200){
var temp=$(窗口).scrollTop()+200;
$('html,body')。设置动画({scrollTop:temp},500,function(){
console.log(window.that);
});
}
});

注意:在窗口对象上显式设置时,注意不要覆盖窗口对象的当前属性。此外,这在某些环境下(如
node.js

@Manju)不起作用。如果您发现我的答案对您有帮助,请将其标记为已接受,这样它可以帮助其他人。@Manju如果您发现我的答案对您有帮助,请将其标记为已接受,这样它可以帮助其他人。