我在我的应用程序中使用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();
最佳答案
如果您在查找为什么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);
}
});
关于javascript - 为什么我的jqRouter.renderViewSuccess事件处理程序被调用了两次?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51812647/