&引用;轨道;将javascript应用于链接
我有一些简单的HTML,在点击链接时提供一些功能。我想清理一下,这样它的处理方式就符合Ruby/Rails编码风格。我试着与&引用;轨道;将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
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不可用,我会将其隐藏。我们可以得到接受的答案吗?我们可以得到接受的答案吗?