jQuery 调整大小处理程序不对每个元素进行操作

Posted

技术标签:

【中文标题】jQuery 调整大小处理程序不对每个元素进行操作【英文标题】:jQuery resize handler does not operate on each element 【发布时间】:2019-04-16 06:10:50 【问题描述】:

自原始发布以来已编辑

我编写了一个调整大小的处理程序,用于侦听正在调整大小的父 div(作为拖动祖先容器 div 的结果)。

处理程序依赖于此处描述的 iframe 方法,我在自己的代码中使用了该方法:Resize on div element

我需要知道我的 div 因父 div 被调整大小而被调整大小,然后做一些事情。请注意,这不是窗口/浏览器调整大小事件。

当页面上只有一个 div 时,它可以正常工作。当使用倍数时,只有最后一个受我的脚本影响。我不知道为什么,现在正在寻求帮助来解决这个问题。

这一切都是在我尝试确定代码范围以使其正确地依次应用于每个受影响的 div 时发生的。

在这里提琴:https://jsfiddle.net/GrumJim/xpvt214o/939643/

违规代码以:

开头

$('.rsg_testtiles_display_macro_container').each(function(index)

我的标记中有两个 div,但只处理了第二个(控制台的 12 个输出代表 12 个子 div,但第一个 div 中的五个子 div 被忽略),我不知道为什么。

非常感谢所有帮助。

【问题讨论】:

尝试缩小此代码范围,并创建一个有效的 sn-p 来重现您尝试解决的问题。这会让这里的人更容易帮助你:-) 请将标记添加到我创建的 sn-p 中,以便我们为您提供更好的答案。为什么你的代码重复? (想通了) @MarkSchultheiss 我的代码重复的原因也是我发布问题的原因:) 我对这一切都很陌生,从 SO 中获取一些信息让我走到了这一步,但我我现在完全被困在这里。我不希望将其分配为完全自己的递归语句,但它看起来就像那样。 @RonenCypis 感谢您的提示,我会尽量减少问题。暂时我在这里添加了我的问题的完整实现作为小提琴,其中包括上面发布的麻烦的调整大小功能:jsfiddle.net/GrumJim/xpvt214o/939554 【参考方案1】:

看来您实际上不应该遍历 $(this) 实例,因为它已经引用了单个元素。

尝试删除此行: $(this).each(function() (以及函数和括号的适当关闭...)

【讨论】:

【参考方案2】:

Mark Scultheiss 对原始问题的评论给出了答案,感谢您让我解决这个问题。

我绝对是以错误的顺序调用事物,尤其是在我将其分配给 var 的情况下。我已经解决了这个问题,方法是正确调用 on,然后是 each,然后将其分配给 var 并依次处理我的每个 div。

我的 javascript 之旅还有很长的路要走,但你让我走上了正确的道路。谢谢各位!

【讨论】:

以上是关于jQuery 调整大小处理程序不对每个元素进行操作的主要内容,如果未能解决你的问题,请参考以下文章

试图在IE6中调整jQuery对话框的大小?

jQuery Resizable : 每个元素的唯一 MinWidth

jQuery事件

Jquery Resize 事件处理程序

如何使 jQuery 插件函数可调用以供独立使用,而不对集合进行操作

试图在 IE6 中调整 jQuery 对话框的大小?