Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;轨道;将javascript应用于链接_Javascript_Ruby On Rails_Ruby - Fatal编程技术网

&引用;轨道;将javascript应用于链接

&引用;轨道;将javascript应用于链接,javascript,ruby-on-rails,ruby,Javascript,Ruby On Rails,Ruby,我有一些简单的HTML,在点击链接时提供一些功能。我想清理一下,这样它的处理方式就符合Ruby/Rails编码风格。我试着与link_tohelpers打交道,但找不到一个干净的方法来处理这种情况 <p>...or <a id="set_current_location" href="#">Use Current Location</a></p> <script> $(function(){ $('#set_current_l

我有一些简单的HTML,在点击链接时提供一些功能。我想清理一下,这样它的处理方式就符合Ruby/Rails编码风格。我试着与
link_to
helpers打交道,但找不到一个干净的方法来处理这种情况

<p>...or <a id="set_current_location" href="#">Use Current Location</a></p>

<script>
$(function(){
    $('#set_current_location').on('click', function(e){
        e.preventDefault();
        navigator.geolocation.getCurrentPosition(function(position) {
            $.ajax({
              type: 'POST',
              url: '<%= set_location_path %>',
              data: {
                latitude: position.coords.latitude,
                longitude: position.coords.longitude
              },
              async: false
            });
        })
    });
});
</script>
…或

$(函数(){ $(“#设置_当前_位置”)。在('click',函数(e)上{ e、 预防默认值(); navigator.geolocation.getCurrentPosition(函数(位置){ $.ajax({ 键入:“POST”, url:“”, 数据:{ 纬度:位置。坐标。纬度, 经度:position.coords.longitude }, 异步:false }); }) }); });

更新:我实际上已经将javascript移到了一个coffeescript文件中,所以这不是我真正的问题。我真的想知道这是否是一种类似rails的方法来解决这个问题。

我能想到的唯一方法是在调用此函数时传递rails生成的路径(url)。我使用了
$(this.attr(“href”)
。在元素中创建属性
href
。此href属性将包含由rails生成的链接

js.erb将没有actionview方法

$(function(){
    $('#set_current_location').on('click', function(e){
        e.preventDefault();
        var url = $(this).attr('href');
        navigator.geolocation.getCurrentPosition(function(position) {
            $.ajax({
              type: 'POST',
              url: url,
              data: {
                latitude: position.coords.latitude,
                longitude: position.coords.longitude
              },
              async: false
            });
        })
    });
});

我能想到的唯一方法是在调用此函数时传递rails生成的路径(url)。我使用了
$(this.attr(“href”)
。在元素中创建属性
href
。此href属性将包含由rails生成的链接

js.erb将没有actionview方法

$(function(){
    $('#set_current_location').on('click', function(e){
        e.preventDefault();
        var url = $(this).attr('href');
        navigator.geolocation.getCurrentPosition(function(position) {
            $.ajax({
              type: 'POST',
              url: url,
              data: {
                latitude: position.coords.latitude,
                longitude: position.coords.longitude
              },
              async: false
            });
        })
    });
});

“rails方式”是将javascript从视图中删除,在单独的文件中使用不引人注目的javascript。乍一看,您的代码很好-只需将“脚本”内容移动到一个.js文件中。

rails的方法是将javascript从您的视图中删除,在单独的文件中使用不引人注目的javascript。乍一看,您的代码很好-只需将“脚本”内容移动到.js文件中。

如果您问我认为您是什么

<%= link_to "Use Current Location", "#", id: :set_current_location %>


就这样。

如果你问我认为你是什么

<%= link_to "Use Current Location", "#", id: :set_current_location %>


那就可以了。

他不是问文件在哪里组织,而是问生成链接的rails方法他问的是rails方法。这个答案是正确的。在一个单独的资产JS文件中编写JS代码,该文件可以无干扰地侦听事件。实际上我已经将代码移到了一个.coffee文件中;)。我想我真的是在问我的方法是否是一种常用的技术,或者是否有一种更像rails的方法。他不是问在哪里组织文件,而是问rails生成链接的方法。他问的是rails的方法。这个答案是正确的。在一个单独的资产JS文件中编写JS代码,该文件可以无干扰地侦听事件。实际上我已经将代码移到了一个.coffee文件中;)。我想我真的是在问我的方法是否是一种常用的技术,或者是否有更多类似approachI的rails,比如它如何使用
href
,以便原始链接仍然可以工作。但是,在这种情况下,没有javascript链接就没有用处,因此如果javascript不可用,我会将其隐藏。我喜欢这样使用
href
,以便原始链接仍然可以工作。但是,在这种情况下,没有javascript链接就没有用处,所以如果javascript不可用,我会将其隐藏。我们可以得到接受的答案吗?我们可以得到接受的答案吗?