【问题标题】:Jquery .resize won't be triggeredJquery .resize 不会被触发
【发布时间】:2016-05-10 10:18:37
【问题描述】:

在 W3Schools 之后,我尝试了以下方法来触发调整大小事件:

$(window).ready(function(){
    $(window).resize(function(){
        if($(".formEvent").length){ // If element exist
            addEventForm($("span.active")); // resize process
        }
    });
    console.log($(window).data("events"));
});

为什么他不会触发我的事件?

编辑:addEventForm 工作,因为当有点击时,他会按时触发创建我的元素。

编辑2:

这里是 addEventform 函数:

function addEventForm(jour){
    if(!$(".formEvent").length){
        jour.closest("tr").after("<form class='formEvent'><div class='curseur'></div></form>");
    }
    
    var percent = jour.offset().left-jour.closest("tr").offset().left+parseInt(jour.css("margin-left").replace("px", ""))+ parseInt(jour.css("padding-left").replace("px", ""))+parseInt(jour.css("border-left-width").replace("px", ""));
    $(".formEvent .curseur").css({"top" : "-15px" , "left": percent+"px"});
    $(".formEvent").show()
}

【问题讨论】:

  • 您的代码看起来不错。你是如何确定事件没有被触发的?您确定这不是代码中的错误吗?你检查过控制台吗?
  • 我检查了控制台,没有错误,但是对于 $(window) 的 console.log,我得到了 undefined
  • 您是否在窗口上定义了任何data 属性?您的代码没有显示任何内容
  • 不,但正如我所读,当我们有一个事件监听器时,它会像这样添加
  • 你导入jQuery了吗?

标签: jquery events triggers resize


【解决方案1】:

我尝试将控制台日志放入您的调整大小函数中,并按预期触发。

$(window).ready(function(){
    $(window).resize(function(){
        console.log('check');
        if($(".formEvent").length){ // If element exist
            addEventForm($("span.active")); // resize process
        }
    });
    console.log($(window).data("events"));
});

http://codepen.io/anon/pen/PNLoRb?editors=1112

你的 if 语句中的某些东西一定是破坏了。

【讨论】:

  • 嗯,是的,正如我所见。将编辑帖子以向您展示我的 addEventForm 函数
【解决方案2】:

我修正了我的正确。真是晦涩难懂……

window.onresize = function(){
    if($(".formEvent").length){
        addEventForm($("span.active"));
    }
};

使用 Javascript API,一切正常。所以让我们保留这个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-28
    • 2021-01-31
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    相关资源
    最近更新 更多