首页 > 解决方案 > 如何正确使用 jQuery $().load(url) 和 Rails turbolink?

问题描述

我对 Rails 很陌生,目前在我的 rails 应用程序中使用 Mapbox GL JS 时遇到问题。

这就是我想要做的。我想单击地图上的一个点,并使用该点的 id 创建一个字符串,该字符串表示可以查看该点信息的页面的 url。

然后,通过使用 jQuery,我想将该页面的内容加载到 application.html.erb 中的 div 元素中。

但是,我不断收到一条错误消息,说“未捕获的错误:rails-ujs 已经加载!”

我做了一些搜索,发现这是一个与在 Rails 中使用 turbolinks 相关的错误,但我不知道应该如何让它按预期工作。

这是我的代码:

map.on('click', 'points', function(e) {

    var thing = e.features[0];
    var path = '/point/' + thing.properties.id + '.html';

        $.ajax({

            success: function() {
                $('#someDiv').load(path);
            },

            error:function(){
                alert('Error');
            }
      })
});

如果我做错了,我提前道歉。非常感谢你。:)

标签: javascriptjqueryruby-on-railsmapbox-gl-jsruby-on-rails-6

解决方案


我想出了答案。这是因为简单地加载路径也包含了 head 部分中的所有内容,包括 turbolink 声明。我只需要在路径后添加 div 名称就可以了。感谢任何试图为我回答的人!


推荐阅读