Javascript 在“英特尔xdk init-app.js”函数中使用jQuery进行事件处理
如果有人能帮我的话- 在intel xdk内部,有一个用于事件侦听器的函数,类似于以下代码Javascript 在“英特尔xdk init-app.js”函数中使用jQuery进行事件处理,javascript,jquery,event-handling,intel-xdk,Javascript,Jquery,Event Handling,Intel Xdk,如果有人能帮我的话- 在intel xdk内部,有一个用于事件侦听器的函数,类似于以下代码 app.initEvents = function() { //... //... var el, evt ; if( navigator.msPointerEnabled || !('ontouchend' in window)) // if on Win 8 machine or no touch evt = "click" ;
app.initEvents = function()
{
//...
//...
var el, evt ;
if( navigator.msPointerEnabled || !('ontouchend' in window)) // if on Win 8 machine or no touch
evt = "click" ; // let touch become a click event
else // else, assume touch events available
evt = "touchend" ; // not optimum, but works
el.addEventListener(evt, myEventHandler, false) ;
//el.evt(myEventHandler) ;
}
这非常有效,但是我想使用jQuery事件绑定。因此,我不想写el.addEventListener(evt,myEventHandler,false)而是像这样写el.evt(myEventHandler)
这是行不通的。但是,如果我使用单击
而不是evt
,它会工作。我看到evt
将“click”表示为字符串。所以,我很困惑,因为“click”和“touchend”字符串,我怀疑在我上面的jQuery中编写click是否适用于触摸屏
非常感谢您的帮助。只需使用jQuery的方法绑定事件即可。这将允许您使用变量作为事件名称
$(el).on(evt, myEventHandler);
我想说的是,你可以使用括号符号,如下所示:
$(el)[evt](myEventHandler);
但是这很糟糕,如果使用这种方法,您应该会感觉很糟糕。请注意,括号表示法仅适用于jQuery具有别名函数的事件名称。(也就是说,jQuery有
$.fn.click
,但没有$.fn.myCustomEvent
)。上的.on方法适用于所有人,应该使用。@JAAulde极好的一点是,jQuery中的自定义事件或未定义事件不会响应括号表示法。