为了账号安全,请及时绑定邮箱和手机立即绑定

只触发一次点击事件

只触发一次点击事件

开心每一天1111 2021-12-23 17:01:55
我只想在浏览器的屏幕宽度为 800 像素时触发点击事件,但是按照下面的逻辑,当我到达 800 并停止调整屏幕大小时,点击事件会不停地来回触发。我该如何解决这个问题。html文件:<!-- begin sidebar minify button --><a href="javascript:;" class="sidebar-minify-btn" data-click="sidebar-minify">   <i class="fa fa-angle-left"></i></a><!-- end sidebar minify button -->js文件:window.onresize = function(){     const width = window.innerWidth;     if(width === 800)     {        $('a[data-click="sidebar-minify"]').trigger('click');        console.log('click event triggered');     }}
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

一种可能的方法是resize在不再需要时使用EventTarget.removeEventListener()删除侦听器,如下所示:


function resizeListener() {

  if (window.innerWidth === 800) {

    window.removeEventListener('resize', resizeListener);

    $('a[data-click="sidebar-minify"]').trigger('click');

    console.log('click event triggered');

  }

}


window.addEventListener('resize', resizeListener);


查看完整回答
反对 回复 2021-12-23
?
函数式编程

TA贡献1807条经验 获得超9个赞

就像@Pete 在评论中所说的那样,您有不同的选择。


您可以使用布尔值来跟踪事件是否已被触发:


var isResized = false;

window.onresize = function()

{

     const width = window.innerWidth;

     if(width === 800 && !isResized)

     {

        isResized = true;

        alert("test");

     }

}

您还可以使用one单击的功能,a tag在第一次使用后解除单击的绑定:


window.onresize = function()

{

     const width = window.innerWidth;

     if(width === 800)

     {

        $('a[data-click="sidebar-minify"]').trigger('click');

        console.log('click event triggered');

     }

}


$('a[data-click="sidebar-minify"]').one("click", function(){

    alert("test");

});


查看完整回答
反对 回复 2021-12-23
?
呼唤远方

TA贡献1856条经验 获得超11个赞

window.onresize = function()

{

 const width = window.innerWidth;

 if(width === 800)

 {

   // give anker link class then remove that after condition true



    $('.anker').trigger('click');



    console.log('click event triggered');


   $('a[data-click="sidebar-minify"]').removeClass("anker");

 }

}


查看完整回答
反对 回复 2021-12-23
  • 3 回答
  • 0 关注
  • 262 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信