jjzjj

侦听器

全部标签

javascript - 无法删除 useEffect 之外的事件监听器

我在useEffect中添加了一个事件监听器。由于useEffect第二个参数([]),它会在第一次重新渲染后运行一次。然后我尝试在useEffect之外(在handleSearch函数中)将其删除,但它不起作用。我怀疑它与功能范围有关,但不完全理解。也许有解决方法?consthandleSearch=()=>{window.removeEventListener('resize',setPageHeightWrapper);};const[pageHeight,setPageHeight]=useState(0);functionsetPageHeightWrapper(){setP

Javascript 按钮监听器触发一次?

我正在为我正在制作的网站制作幻灯片式旋转器。旋转器本身工作正常,但我正在尝试使用键盘上的左/右键使幻灯片向前/向后滑动。我的代码是这样的:$(document).keydown(function(e){varcurrentPosition=0;varslideWidth=836;varslides=$('.slide');varnumberOfSlides=slides.length;varanimLength=600;if(e.keyCode==37){currentPosition=currentPosition-1;//Checktoseeifnewpositionisunbou

javascript - 与使用 $.each 相比,将监听器添加到 jQuery 类集的效率

最初的直觉告诉我,使用绑定(bind)或简单的事件方法向jQuery元素集添加一个监听器,例如..$('.className').click(funcName);比使用$.each方法将一个监听器一个一个地添加到同一个集合中要合适得多,因为...$('.className').each(function(){$(this).click(funcName);});但是当涉及到插件开发时,您正在处理用户在页面的整个生命周期内、页面加载时以及页面加载后很长时间内通过ajax多次调用您的插件实例的可能性,这样做是错误的吗?将处理程序应用于每个元素本身,而不是尝试将处理程序抽象到它们的全局类集?

javascript - 将监听器函数添加到 JavaScript 对象

我有以下定义Car的代码。每辆Car都有一种颜色,还有一个setColor(color)函数。我想添加每当调用setColor(color)时调用的监听器函数,并且我希望能够随时添加这些监听器函数。这是一种合适的方法吗?有更清洁的方法吗?functionCar(){this._color='red';this._callbacks={};this.setColor=function(color){this._color=color;console.log(">>>setcarcolorto"+color);if(this._callbacks['setColor']){this._ca

javascript - JavaScript 事件监听器是否自动清理?

元素从DOM中移除后,其事件监听器是否会自动注销并清除其引用的资源(闭包)?如果是,如果某些非事件监听器代码持有对该元素的引用,答案会改变吗?我特别关心的是“伪导航”,其中unload事件被触发并且大部分文档被替换(当然许多替换元素也注册了事件监听器),但可能有在另一个整页加载发生之前的几个伪导航。所以我想知道是否有必要跟踪所有添加的事件监听器并在unload触发时手动删除它们以避免泄漏它们引用的任何资源。(注意:在我的例子中,“使用jQuery/[其他js库]来处理它”不是一个有效的解决方案。我感兴趣的是与IE8+和其他浏览器的相当新版本的兼容性。) 最佳

javascript - 在 JavaScript 上添加/删除监听器(垃圾收集器)

我有一个关于添加/删除DOM对象监听器的快速问题。我想问一下垃圾收集器是否能够在从页面中删除元素时收集内存。示例:带有几个child列表的标签()varul=document.getElementById('someParent');varchildren=ul.children;varsomeFunction=function(){};for(vari=0;i 最佳答案 ul.remove();行将从DOM中删除ul元素及其所有子元素。但是只要您引用了这些监听器、li元素和ul元素,事件监听器的内存就不会被释放。您在变量child

javascript - 内容脚本中的监听器

让我解释一下我的问题。我目前正在开发一个GoogleChrome扩展,它在每个网页中将工具栏作为iframe注入(inject)。问题是在某些情况下我需要隐藏工具栏,重新显示它等等。Basicelly我想把我的听众放在我的背景页面上,但它没用,因为这个页面不能图形化地操作对象。所以我的计划是将此监听器放在content_script上(他可以图形化地操作对象)。但第二个问题是,与背景页面相对的内容脚本不会一直执行,而只会执行一次。所以我问自己是否有可能通过在其上放置一个循环或类似的东西来使内容脚本听起来像背景页面...提前致谢。我已经试过了:list.json{"background_

javascript - 谷歌地图 apiv3 'click' 和 'dragend' 单监听器

通过单击我的代码来检索纬度和经度,它工作正常。想知道是否可以在单个事件监听器中组合“单击”和“拖动”(如果不能)。将不胜感激什么是合适的选择。这就是我一直在做的事情。google.maps.event.addListener(map,'click',function(event){document.getElementById("latbox").value=event.latLng.lat();document.getElementById("lngbox").value=event.latLng.lng();addMarker(event.latLng);});}functiona

Javascript 事件监听器退出(?)监听... Youtube API - 无控制台错误

编辑-2016-06-25(我删除了6月16日的更新,因为不再相关。我把我的OP留在了下面...)我今天又花了4个小时在这上面。现在是这样的情况:我的函数WORKS用于两个链接。视频参数在数组中定义。其他两个链接无效。我得到一个UncaughtTypeError:thisPlayer.loadVideoByIdisnotafunction对于链接#3和#4。但是相同的功能适用于链接#1和#2。似乎youtube对象仅针对两个第一定义。为什么?请仔细查看此实时链接上的控制台:https://www.bessetteweb.com/?p=youtube-video-test我插入了很多co

javascript - 没有 jQuery 的当前和 future 元素的事件监听器

这个问题在这里已经有了答案:HowtoaddEventListenertofutureDOMelements?(2个答案)关闭9个月前。如果我没记错的话,我曾经看到一种方法可以将事件监听器绑定(bind)到符合特定条件的每个元素,也许是查询选择器。再次寻找它,我找不到除了高度依赖jQuery的人之外的任何东西,但我更喜欢一种真正简单的方法来实现这一点。有人知道这个方法叫什么吗?