我在我的应用程序中使用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/

10-10 21:58