Jquery mobile 如何在bind event-jquery mobile中将事件传递给函数
我有一个函数SomeFunction(event)—— 我想将“tap”事件绑定到(“#selectorid”)元素,并想知道正确的语法是什么: 我应该使用:Jquery mobile 如何在bind event-jquery mobile中将事件传递给函数,jquery-mobile,Jquery Mobile,我有一个函数SomeFunction(event)—— 我想将“tap”事件绑定到(“#selectorid”)元素,并想知道正确的语法是什么: 我应该使用: $('#selectorid').unbind().bind('tap',SomeFunction); 或: 或: 或 我对这件事完全糊涂了,希望能澄清一下 我正在使用最新的rc2 jquery mobile#1应该完成任务,但需要全局定义“SomeFunction”: $( "#selectorid" ).unbind().b
$('#selectorid').unbind().bind('tap',SomeFunction);
或:
或:
或
我对这件事完全糊涂了,希望能澄清一下
我正在使用最新的rc2 jquery mobile#1应该完成任务,但需要全局定义“SomeFunction”:
$( "#selectorid" ).unbind().bind( "tap", SomeFunction );
当事件被触发时,它将调用相同的“SomeFunction”,并将事件作为第一个参数传递,因此您所要做的就是定义SomeFunction,如下所示:
SomeFunction( p_event )
{
// Do cool evil stuff with the event parameter like cancel the tap event >:)
p_event.preventDefault();
// That's it. :)
}
#2也可以工作,但同样需要全局定义“Somefunction”
$( "#selectorid" ).unbind().bind( "tap", function(p_event)
{
SomeFunction( p_event );
});
在#2的情况下,匿名函数将调用“SomeFunction”并传递事件,就像在第一个示例中一样,但需要额外的步骤。这就是我喜欢第一种方法的原因。:)
#3和#4有错误,只是前两个的糟糕版本
另外,我所说的全局定义的意思是,“SomeFunction”在页面的任何地方都可用,而不仅仅是在对象、插件或闭包中定义的。因为如果是,那么在事件处理程序中调用它可能会产生未定义的错误。如果你想知道的话,我喜欢在字符串中使用双引号,并在参数变量前加上'p_3;',这样我就可以在函数中使用相同的变量名,并且很容易区分两者。这是我的个人命名惯例。:) 我可以问一下为什么要在.bind之前调用.unbind()?因为出于某种原因,我正在继承一个绑定,其中包含一个从相机获得的图像,并在画布元素上重新绘制。它不仅不运行我的功能,而且点击画布上的图片会返回到手机摄像头。。所以我想我最好排除继承的事件选项tanks@b01-一个问题-我真的应该调用event.preventDefault();?或者这只是为了举例说明?
$( "#selectorid" ).unbind().bind( "tap", SomeFunction );
SomeFunction( p_event )
{
// Do cool evil stuff with the event parameter like cancel the tap event >:)
p_event.preventDefault();
// That's it. :)
}
$( "#selectorid" ).unbind().bind( "tap", function(p_event)
{
SomeFunction( p_event );
});