我在我的应用中使用jq-router,并且该脚本根据当时的路由名称动态加载。由于某种原因,无论我做什么,事件处理程序以及console.log
输出都会执行两次。如何阻止这种情况的发生?或者,为什么会这样呢?
function init() {
$(window).on('jqRouter.renderViewSuccess', function(e, viewRoute, route, params) {
if(route.name == 'domains.single') {
console.log(params.domain);
}
});
}
init();
答案 0 :(得分:2)
如果您找不到jqRouter.renderViewSuccess
事件触发两次的原因,则可以在第一次调用后删除事件处理程序,以确保仅被调用一次。您可以使用jQuery off
函数来做到这一点:
$(window).on('jqRouter.renderViewSuccess', function(e, viewRoute, route, params) {
if(route.name == 'domains.single') {
$(window).off('jqRouter.renderViewSuccess');
console.log(params.domain);
}
});