gpt4 book ai didi

javascript - 通过 html 调用 js 函数导致错误

转载 作者:行者123 更新时间:2023-11-30 21:13:47 25 4
gpt4 key购买 nike

<分区>

在页面加载时,我的代码将用户位置与每个电车站的坐标进行比较,并选择最接近的一个,这绝对可以正常工作。

问题出在 onchange=tram_stops(this.value) 上,因为当我更改值时出现错误:

SCRIPT438: SCRIPT438: Object doesn't support property or method 'tram_stops'

有人知道如何解决这个问题吗?

@extends('master') @section('title', 'Trams')
@section('extrafiles')
<script type="text/javascript" src="{{ asset('js/tram.js') }}"></script>
@endsection
@section('content')
<section class="container">
<div class="row">
<div class="col-xs-12">
<h1>Metrolink Times</h1>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<label for="tram_stops">Select a station:</label>
<form id="tram_stops">
<select id="tram_dropdown" class="form-control" onchange="tram_stops(this.value);">
@foreach($entities as $entity)
<option data-lng="{{ $entity->_geoloc->lng }}" data-lat="{{ $entity->_geoloc->lat }}" value="{{empty($entity->_geoloc->slug) ? 'no-slug' : $entity->_geoloc->slug}}">{{$entity->name}}</option>
@endforeach
</select>
</form>
</div>
</div>
<div id="display">
</div>
</div>
</section>
@endsection
$(document).ready(function() {
var user_lat;
var user_lng;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
alert("Geolocation is not supported by this browser.");
}

function showPosition(position) {
var distanceArray = [];
var slugArray = [];
user_lat = position.coords.latitude;
user_lng = position.coords.longitude;
$("option").each(function() {
var unit = "K";
var tram_lat = $(this).attr("data-lat");
var tram_lng = $(this).attr("data-lng");
var slug = $(this).attr("value");
var radlat1 = Math.PI * tram_lat / 180
var radlat2 = Math.PI * user_lat / 180
var theta = tram_lng - user_lng;
var radtheta = Math.PI * theta / 180
var dist = Math.sin(radlat1) * Math.sin(radlat2) + Math.cos(radlat1) * Math.cos(radlat2) * Math.cos(radtheta);
dist = Math.acos(dist)
dist = dist * 180 / Math.PI
dist = dist * 60 * 1.1515
if (unit == "K") {
dist = dist * 1.609344
}
if (unit == "N") {
dist = dist * 0.8684
}
slugArray.push(slug);
distanceArray.push(dist);
});
var closest = Math.min(...distanceArray);
var index = (distanceArray.indexOf(closest));
var slug = (slugArray[index]);
if (sessionStorage.getItem("item") === null) {
sessionStorage.setItem("item", slug);
timeout();
} else {
timeout();
}
}
});

function timeout() {
setTimeout(function() {
var tram_val = sessionStorage.getItem("item");
tram_stops(tram_val);
$("#tram_dropdown").val(tram_val);
}, 30000);
}

function tram_stops(tram_value) {
sessionStorage.setItem("item", tram_value);
$.ajax({
url: '/tramsearch/' + tram_value,
type: 'post',
dataType: 'html',
success: function(data) {
$("#display").html(data);
var tram_value = tram_value;
},
error: function(data) {
},
headers: {
'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')
}
});
timeout();
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com