我已经阅读了有关事件处理的jQuery文档,但我仍然无法真正理解我应该做什么。我有一个移动应用程序,其中的内容是使用ajax加载的,因此无法在该内容的文档onLoad上绑定(bind)事件。随着我的应用程序的增长,我现在开始担心错误的事件处理会导致性能问题。选择on()、live()和delegate()对性能有何影响?还有什么要考虑的? 最佳答案 从jQuery1.7开始,绑定(bind)事件的官方(也是最高效的)方法是.on和.off。与基于id的选择器结合使用时速度最快:$('#id').on('click',myHandle
我有以下html:以及以下jquery:$contain=$('#contain');//goingtousealot$contain.on('click','li.two',function(){console.log('working');//plusdootherstuff});以上不起作用,但是当我将其更改为:$('body').on('click','li.two',function(){console.log('working');//plusdootherstuff});然后它起作用了,但我知道最好的做法是尽可能靠近我尝试使用的父元素进行钻取,但每次我尝试这样做时,我显然
我正在使用jquery1.10。我想知道这三个函数之间有什么区别。哪个功能更好,为什么?委托(delegate)函数的作用是什么?$(".dropdown-menu").on("click",".show_opt_menu",function(){alert("hello");});$(".dropdown-menu.show_opt_menu").on("click",function(){alert("hello");});$(".dropdown-menu").delegate(".show_opt_menu","click",function(){alert("Delegate
我正在自学JS并尽量避免使用jQuery,直到我的JS技能更好。目标:为某个类的所有div添加一个事件监听器,用于点击事件。让该类的所有子节点响应该事件。我的HTMLcss3tamberator我使用这个JS选择了所有的.grid-paneldivvargridPanels=document.querySelectorAll('.grid-panel');然后,因为它返回一个类为.grid-panel的div数组我为点击添加事件监听器for(i=0;i我的功能是这样的myFunction(){vare=event.target;switch(e){casegridPanels[0]:m
在jQuery中,您可以执行以下操作:$('#j_unoffered').on('click','.icon_del',function(){...这会在元素j_unoffered上放置一个处理程序,如果单击具有类icon_del的任何后代元素,该处理程序就会触发。此外,它适用于任何随后创建的icon_del元素。我可以在点击元素本身的Closure中正常工作。goog.events.listen(goog.dom.getElement('j_unoffered'),goog.events.EventType.CLICK,function(e){...如何在Closure中指定父事件目
本质上,我有一个普通的ListView:Rectangle{id:mylistListModel{id:mylistModelListElement{text:"blah1"}ListElement{text:"blah2"}ListElement{text:"blah3"}}Component{id:mylistDelegateText{id:mylistDelegateTexttext:textpropertyboolmylistDelegateTextEnabled:false}}ListView{id:mylistViewmodel:mylistModeldelegate:my
如果有人能帮我弄清楚为什么在MooTools中使用事件委托(delegate)(来自Element.Delegation类)时无法以编程方式触发事件,我将不胜感激。有父有一个change一些child的听众元素。当更改事件由用户操作触发时,父div上的处理程序被触发,但是当我以编程方式使用fireEvent触发它时在任何子输入上,什么都不会发生。基本设置是:htmljs$("listener").addEvent("change:rela
例如:我需要输出一个列表。每个项目都会有一个(点击)处理程序,其中包含项目对象(如参数)。这个列表会经常动态更新:我会在Scroll上加载新项目,或者通过搜索过滤列表。Angular为每个项目添加一个事件监听器!问题:列表中可以有很多项,所以会有很多eventListener一直连接和断开。有没有办法应用委托(delegate)模式让只有一个eventListener事件? 最佳答案 您可以使用trackBy来提高性能。app.component.html应用程序组件.tstrackByFn(index,item){returnin
假设我有构造函数Foo、Bar和Qux。我如何创建一个带有委托(delegate)链(使用那些构造函数)的新对象,我会动态选择?例如,一个对象将具有委托(delegate)链Foo->Bar。另一个对象将具有链Foo->Qux。functionFoo(){this.foo=function(){console.log('foo');}}functionBar(){this.bar=function(){console.log('bar');}}functionQux(){this.qux=function(){console.log('qux');}}对象fooBar将能够调用foo(
当使用.on委托(delegate)事件时,我如何定位子元素:我试过:childSelector=>*>:nth-child(n)但是当我从>开始时没有选择任何东西。$(selector).on(event,childSelector,handler);有时我想针对直接child,有时我不想:(伪代码)varfunc=function(selector,subSelector){$(selector).on("click",subSelector,function(){alert("mysubSelectorisclicked");});}func("#wrapper","direct