我只想听一下滚动事件,如果按钮的类名为" scroll_button"被展示。我想节省资源。我怎样才能实现它?
JS
$(window).scroll(function(){
});
HTML
<button class="scroll_button" style="display: none;"> click here </button>
答案 0 :(得分:0)
试试此代码
$(window).scroll(function(){
if( $('.scroll_button').css('display') != 'none' )
{
//do something
}
});
答案 1 :(得分:0)
这是不可能的。作用于大于子元素的元素的事件侦听器不能依赖于子元素。
但您可以收听所有滚动事件,并在回调中检查按钮的显示状态,如下所示:http://jsfiddle.net/db27hzwk/
$(window).scroll(function(e){
if($(".scroll-button").is(':visible')) {
console.log("business logic");
};
});
答案 2 :(得分:0)
根据评论,由于按钮的可见性由另一个按钮控制,您可以这样做:
$("#change").click(function () { // button that controls visibility
$(".scroll_button").toggle(0, function () {
if ($(".scroll_button").is(':visible')) {
$(window).on("scroll", function (e) { // listen to scroll
console.log("scolling");
});
} else {
$(window).off("scroll"); // stop listening to scroll
}
});
});