草庐IT

def_delegate

全部标签

c# - "Two-level"委托(delegate)的泛型方法参数推断

考虑以下示例:classTest{publicvoidFun(Funcf){}publicstringFun2(stringtest){return"";}publicTest(){Fun(Fun2);}}这编译得很好。我想知道为什么我不能删除通用参数?我收到无法从用法中推断出的错误。我知道这样的推断对编译器来说可能具有挑战性,但它似乎是可行的。我想要对此行为的解释。编辑回答JonHanna的回答:那为什么这样行得通呢?classTest{publicvoidFun(T1a,Funcf){}publicstringFun2(inttest){returntest.ToString();

javascript - 将事件委托(delegate)给 Backbone 中的父 View

我的ViewTuneBook有几个ClosedTune类型的subview。OpenTune,我还为每首曲子提供了单独的完整页面浏览量。相同的事件绑定(bind)在ClosedTune和OpenTune中,因此我设计了我的应用程序,使它们都继承自共享的“抽象”ViewTune.为了使我的应用程序更具可扩展性,我希望将每个ClosedTune的事件委托(delegate)给TuneBook,但为了可维护性,我希望使用相同的处理程序(存储的那些在Tune中)以供TuneBook使用(尽管它们显然需要包含在某些函数中)。我遇到的问题是,在TuneBook中,找到正确的ClosedTune来调

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 - 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 - 一旦不再需要 View ,取消委托(delegate)事件的最佳方式

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

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-明智

javascript - Angular2 中的事件委托(delegate)

我正在用ng2开发一个应用程序,但遇到了一些问题。我正在构建一个日历,您可以在其中选择一个日期范围,我需要对日期单元格上的click和mouseenter/mouseleave事件使用react。所以我有一个这样的代码(简化):calendar.component.html但这让我在浏览器的内存中有数百个单独的事件监听器(每天的单元格有3个事件监听器,我一次最多可以显示12个月,所以它会超过1000个监听器)。所以我想以“正确的方式”来做,使用称为“事件委托(delegate)”的方法。我的意思是,在父组件(month)上附加一个点击事件,当它收到一个点击事件时,只需检查它是否发生在D