老师帮我看下为什么触发不到监听的事件
来源:5-4 自由编程
vivi_li
2020-06-03 09:53:54
<div class="consumer">
<div class="container">
<div class="consumer-group">
<span class="consumer-group-title">消费者保障</span>
<div class="consumer-group-detail">
<a href="###" target="_blank" class="link">保障范围</a>
<a href="###" target="_blank" class="link">保障范围</a>
<a href="###" target="_blank" class="link">保障范围</a>
<a href="###" target="_blank" class="link">保障范围</a>
</div>
</div
><div class="consumer-group">
<span class="consumer-group-title">消费者保障</span>
<div class="consumer-group-detail">
<a href="###" target="_blank" class="link">保障范围</a>
<a href="###" target="_blank" class="link">保障范围</a>
<a href="###" target="_blank" class="link">保障范围</a>
<a href="###" target="_blank" class="link">保障范围</a>
</div>
</div
><div class="consumer-group">
<span class="consumer-group-title">消费者保障</span>
<div class="consumer-group-detail">
<a href="###" target="_blank">保障范围</a>
<a href="###" target="_blank">保障范围</a>
<a href="###" target="_blank">保障范围</a>
<a href="###" target="_blank">保障范围</a>
</div>
</div
><div class="consumer-group">
<span class="consumer-group-title">消费者保障</span>
<div class="consumer-group-detail">
<a href="###" target="_blank">保障范围</a>
<a href="###" target="_blank">保障范围</a>
<a href="###" target="_blank">保障范围</a>
<a href="###" target="_blank">保障范围</a>
</div>
</div>
</div>
</div>
//consumer
var consumer={};
consumer.$doc=$(document);
consumer.$consumer=$(".consumer");
//是否出现在可视区域
consumer.isVisible = function ($elem) {
//页面可视区域的高度加页面滚动高度大于元素上边沿距离顶部高度时,元素位于可视区域之外---下边界
//页面滚动高度小于元素自身高度以及页面滚动高度之和----上边界
return (floor.$win.height() + floor.$win.scrollTop() > $elem.offset().top);
}
consumer.timeToShow = function ($elem) {
$elem.each(function (index, ele) {
if (consumer.isVisible($(ele))) {
console.log(1)
consumer.$consumer.trigger("consumer-show");
}
})
}
consumer.timeToShow(consumer.$consumer);
consumer.$consumer.on('consumer-show',function (e) {
console.log(e.type)
console.log(1)
})
// console.log(consumer.isVisible(consumer.$consumer));
3回答
好帮手慕久久
2020-06-03
同学你好,trigger是触发自定义事件,on是监听该事件。如下:
trigger只要调用就会触发自定义事件,不需要写在别的事件中,如下:
祝学习愉快!
好帮手慕久久
2020-06-03
同学你好,代码中的问题如下:
1. 需要增大页面的高度,让页面出现滚动条,这样才可以模拟,滚动到“consumer”时,触发它的“consumer-show”事件。可以使用一个空的div,增大页面的高度:
2. isVisible方法中使用了不存在的对象“footer”,导致该方法无法正确获取到结果,需要做如下更改:
3. 页面滚动过程中,也需要判断该元素是否显示了,所以需要在window的滚动事件中触发timeToShow方法,如下:
如果我的回答帮到了你,欢迎采纳,祝学习愉快!
vivi_li
提问者
2020-06-03
我用document监听也没有成功
相似问题