在回调中设置事件处理程序

时间:2016-05-14 03:35:24

标签: jquery ruby-on-rails ajax

我想在ajax请求成功返回后设置一个eventhandler。 setup_chat()是设置eventhandler的东西,setup_chat()正常工作,除非我把它称为回调函数。像这样:

$('#create_game_btn').on('click', function(){
        $.ajax({
        url: 'games/new',
        contentType: 'application/json; charset=utf-8',
        type: 'GET',
        dataType: 'text',
        error: function (xhr, status) {
          alert(status);
        },
        success: function (result) {
        alert("Callback done!");
        window.location.replace('games/start');
        setup_chat(2);

    }
});

});

1 个答案:

答案 0 :(得分:0)

问题在于:

    window.location.replace('games/start');
    setup_chat(2);

这将加载一个全新的页面。将卸载当前页面上的所有JavaScript。 setup_chat(2)电话无效。

为了“修复”此问题,您需要在加载新页面后调用此代码。你不能从你的ajax回调中做到这一点。

例如,在<body>加载的页面上games/start标记的底部:

<script>
    setup_chat(2);
</script>

另一种选择是根本不加载新页面。

除此之外,我无法帮助你。在解决此问题之前,您可能需要了解有关Web开发的更多信息。