У меня в настоящее время написан код, который будет вызывать функцию после пользовательского вызова .trigger()
.Это то, что называется:
function _visitAddTag(state, listener) {
if (state.properties.action = "RedoAddTag") contextMenu.unhide();
var $target = contextMenu.getContextMenuUI().tags; // Grab tag elements
var callback = function () {
if (listener) {
google.maps.event.removeListener(listener);
}
$target.off("tagIds-updated", callback);
contextMenu.hide();
next.call(contextMenu.getTargetLabel(), state.transition);
};
$target.on("tagIds-updated", callback());
}
Строка next.call()
вызывает запуск этого метода:
function () { // 'this' is contextMenu.getTargetLabel(), as called in Onboarding.js/_visitAddTag()
tracker.push('Onboarding_Transition', {onboardingTransition: "tag-attribute-1"});
var tags = this.getProperty('tagIds');
return tags == [2] ? "adjust-heading-angle-1" : "redo-tag-attribute-1" // Where 2 is the tag_id of the "points into traffic" tag
}
Где возвращаемое значение "redo-tag-attribute-1"
приведет к тому, что всецикл снова
Я вижу здесь потенциал для рекурсии, особенно если событие "tagIds-updated"
каким-то образом инициируется во втором вызове функции.Однако, когда я отлаживаю код, это событие срабатывает только один раз.У кого-нибудь есть идеи относительно того, что здесь происходит?Я новичок в JavaScript, так что, может быть, я упускаю что-то очевидное.