Jquery mobile 如何在bind event-jquery mobile中将事件传递给函数

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

我有一个函数SomeFunction(event)—— 我想将“tap”事件绑定到(“#selectorid”)元素,并想知道正确的语法是什么:

我应该使用:

 $('#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 );
});