# 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_», чтобы я мог использовать одно и то же имя переменной в функции и легко различать их. Это мое личное соглашение об именах. :)