Как я могу знать в своем коде инициирования это preventDefault
был назван?
$(document).trigger('customEvent', params);
if (/* ??? */)
doDefaultActions();
trigger() также может принимать объект события, поэтому если вы можете создать объект события, например:
var event = jQuery.Event("customEvent");
$(document).trigger(event);
то вы можете проверить после триггера, не была ли вызвана функция preventDefault() так:
var prevented = event.isDefaultPrevented();
Если вы спрашиваете, как узнать, было ли предотвращено значение по умолчанию, используйте:
event.isDefaultPrevented ()
This вернет true или false в зависимости от того, был ли вызван метод preventDefault ().
РЕДАКТИРОВАТЬ: http://api.jquery.com/event.isDefaultPrevented/
Насколько мне известно, вызов preventDefault () предназначен для предотвращения реакции собственного браузера на такие вещи, как щелчки по тегам привязки или нажатия клавиш в текстовых полях. Как только цикл обработки событий закончился, он закончился. Я не думаю, что для придуманных событий это имеет какое-либо влияние, поскольку все дело в системе обработки событий jQuery, а не в собственных функциях браузера.
В вашем коде может быть установлен какой-то флаг, чтобы взаимодействовать с "внешним миром".
[edit] ох, вы могли бы попробовать спрятать обработчик ссылка на объект события где-нибудь, где внешний код может его найти, а затем внешняя проверка с помощью "isDefaultPrevented ()". Однако я не знаю, сработает ли это.
Custom events не имеет некоторых действий по умолчанию, которые происходят ... (они пользовательские).
С другой стороны, если вы хотите остановить пузырьковый эффект этого события для других, то посмотрите на triggerHandler
, который не пузырится вверх по иерархии ...