草庐IT

anonymous-delegates

全部标签

javascript - 委托(delegate)事件不能与 :not() selector 结合使用

我想对除特定元素之外的所有点击执行某些操作。我创建了一个非常简单的示例来演示该问题:http://jsfiddle.net/nhe6wk77/.我的代码:$('body').on('click',':not(a)',function(){//dostuff});我希望所有点击被忽略,但事实并非如此。是我做错了什么还是jQuery方面的错误? 最佳答案 代码中发生了很多不明显的事情。最重要的是,click事件实际上附加到body元素。由于该元素不是anchor,因此您将始终收到警报。(事件委托(delegate)有效是因为click事

javascript - 事件委托(delegate)需要多少元素才能变得有值(value)?

阅读另一个关于jQuery性能的StackOverflow问题,我开始思考什么时候值得使用事件委托(delegate)而不是单独绑定(bind)到元素。我主要考虑的是jQuery,但我认为它可能适用于一般的Javascript。事件委托(delegate)有两个主要目的:允许处理程序处理尚未创建/插入到DOM中的元素。将一个函数绑定(bind)到一个共同的祖先元素而不是绑定(bind)到多个兄弟元素我的问题是关于其中的第二个。一般的答案可能是“这取决于具体情况”,但我想知道是否有经验法则或基准测试方法来对此进行测试。因此,问题是:在事件委托(delegate)的性能优势超过性能成本之前

Javascript : Anonymous function, 获取全局变量

经过几个小时的搜索,我的下面的代码有问题。事实上,我离我想的答案不远,但我仍然被封锁了……我有一个在循环内调用的匿名函数,我想访问和刷新全局变量,但我尝试使用window.myvariable和另一个函数,但没有任何反应......这是我的代码:for(vari=0;i那么,我如何才能转换这个匿名函数,以便获得我可以从我的代码中访问的东西?非常感谢,抱歉我的英语不是很好...... 最佳答案 这是异步代码执行的典型问题。您的示例代码不会从上到下执行。特别是,在Shapefile完成它正在做的任何事情之前,您的匿名函数不会被执行。同时

javascript - Vanilla JavaScript 事件委托(delegate)

在vanillajs中进行事件委托(delegate)的最佳(最快/正确)方式是什么?例如,如果我在jQuery中有这个:$('#main').on('click','.focused',function(){settingsPanel();});我怎样才能将它翻译成vanillajs?也许用.addEventListener()我能想到的方法是:document.getElementById('main').addEventListener('click',dothis);functiondothis(){//nowinjQuery$(this).children().each(fu

javascript - Uncaught ReferenceError : stopme is not defined (anonymous function)

我一直在我的控制台中看到这个非破坏性异常:UncaughtReferenceError:stopmeisnotdefined(匿名函数)在我的任何文件中都没有调用名为stopme的变量,在控制台中进行了全面搜索。我有多个:setInterval(function(){updateMetrics();},1000);调用我的代码,每当其中一个失败时,它就会显示在控制台中。我也不知道这是否是默认行为,但我也注意到每次我使用以下方法设置新间隔时:varintervalId=setInterval(function(){},1000);intervalId是非顺序的,如:console.log

javascript - 一旦不再需要 View ,取消委托(delegate)事件的最佳方式

在Viewremove()方法中调用undelegateEvents()是一种不好的做法吗?为什么Backbone人员默认不包含它?我意识到我在简单地重新初始化View变量时遇到了很多绑定(bind)问题。虽然在创建新View时会自动调用undelegateEvents(),但它会尝试取消委托(delegate)新实例化View的事件,而不是前一个View。因此,除非每次都手动调用它,否则幽灵事件回调仍然存在并搞砸了我的应用程序。处理此问题的最佳方法是什么? 最佳答案 Isitabadpracticetocallundelegate

javascript - 为什么在 crossOrigin = 'Anonymous' 图像上设置 base64 数据时 Safari 会抛出 CORS 错误?

我遇到一个问题,将图像src(使用newImage创建的图像)设置为base64编码图像失败,抛出:跨源资源共享策略拒绝跨源图像加载。我已经有了image.crossOrigin='Anonymous'。请参阅以下代码笔:http://codepen.io/bedeoverend/pen/aORQzg.它适用于Chrome,但不适用于Safari。如果有效,黑白饼图图像应该显示在底部。为什么会发生这种情况,如何解决?更新:为了澄清,我在这里做了一个更集中的代码笔:http://codepen.io/bedeoverend/pen/BNGarr对于Safari,似乎在图像上设置cross

javascript - 网格上的 JQuery 委托(delegate)方法

我正在尝试在用DataTables.Net插件包装的网格上使用委托(delegate)方法。我最初有这段代码,它按预期工作。$("#myGridtbodytr").click(function(){varid=$(this).children('td').eq(0).text();alert(id);});但是,如果我更改分页大小,则较新的行没有调用该函数的点击事件。我决定新的JQuery委托(delegate)方法应该完全符合我的要求;但是,它对任何tr元素什么都不做。谁能解释为什么这不起作用:$('#myGridtbody').delegate('tr','click',funct

javascript - 原生 JS 相当于 jQuery 委托(delegate)

动态创建的dom元素上的事件委托(delegate)的native实现是什么?我尝试查看jQuery源代码,但无法遵循.on方法。注意:目前,我在创建dom元素后附加事件处理程序,这看起来很标准,但我喜欢jQuery.on使用此语法处理动态创建的元素事件的方式$(文档).on("click",".selector",handler);. 最佳答案 基本上是这样的://$(document).on("click",,handler)document.addEventListener("click",function(e){for(va

javascript - 明智地使用 .delegate() 性能更好吗?

与我一起工作的一位开发人员开始以这种方式编写他的所有代码:$('.toggles').delegate('input','click',function(){//dosomething});对比:$('.toggles').click(function(){//dosomething});这样做有什么性能优势吗? 最佳答案 delegate()从jQuery1.7开始被取代。改用.on()。.on()具有出色的性能基准。并涵盖您的.click()需求和需要 关于javascript-明智