两个javascript文件相互覆盖(冲突)
我遇到的问题是,我在index.html中包含了两个javascript文件,ExhaustTemperature.js和CylinderPressure.js 我的想法是,当我单击list_row1时,ExhaustTemperature.js中的table1将显示,当我单击list_row2时,CylinderPressure.js中的table2将显示 我相信这两个javascript文件互相覆盖是因为它们有相似的方法名,有可能防止这种覆盖吗 我的index.html文件两个javascript文件相互覆盖(冲突),javascript,jquery,Javascript,Jquery,我遇到的问题是,我在index.html中包含了两个javascript文件,ExhaustTemperature.js和CylinderPressure.js 我的想法是,当我单击list_row1时,ExhaustTemperature.js中的table1将显示,当我单击list_row2时,CylinderPressure.js中的table2将显示 我相信这两个javascript文件互相覆盖是因为它们有相似的方法名,有可能防止这种覆盖吗 我的index.html文件
<script type="text/javascript" src="js/ExhaustTemperature.js"></script> // table1
<script type="text/javascript" src="js/CylinderPressure.js"></script> // table2
<ul class="list-group">
<li class="list-group-item"><a href='#' id='list_row1'>Exhaust Temperature</a></li>
<li class="list-group-item"><a href='#' id='list_row2'>Cylinder Pressure</a></li>
</ul>
<div id = "table1">table1</div>
<div id = "table2">table2</div>
<script>
// hide the tables by default when page loads
$('#table1').hide();
$('#table2').hide();
$('#list_row1').on('click',function(event){
event.preventDefault(); // halt the anchor tag's default behaviour
$('#table2').hide();
$('#table1').show();
});
$('#list_row2').on('click',function(event){
event.preventDefault(); // halt the anchor tag's default behaviour
$('#table1').hide();
$('#table2').show();
});
</script>
//表1
//表2
表1
表2
//默认情况下,页面加载时隐藏表
$(“#表1”).hide();
$(“#表2”).hide();
$(“#列出第1行”)。在('click',函数(事件){
event.preventDefault();//停止锚标记的默认行为
$(“#表2”).hide();
$('#表1').show();
});
$(“#列出第2行”)。在('click',函数(事件){
event.preventDefault();//停止锚标记的默认行为
$(“#表1”).hide();
$('#表2').show();
});
更新:(以下内容是OP发布的答案——亚历山大·扎克)
以下是排气温度.js的内容
<script type="text/javascript" src="js/ExhaustTemperature.js"></script>
window.onload=函数(){
var dps=[];//数据点
var chart=new CanvasJS.chart(“表1”{
标题:{
文本:“实时随机数据”
},
数据:[{
键入:“行”,
数据点:dps
}]
});
var xVal=0;
var-yVal=100;
var updateInterval=20;
var dataLength=500;//任意点可见的数据点数量
var updateChart=函数(计数){
计数=计数| | 1;
//count是循环运行以生成随机数据点的次数。
对于(var j=0;jdataLength)
{
dps.shift();
}
chart.render();
};
//生成第一组数据点
updateChart(数据长度);
//在指定时间后更新图表。
setInterval(函数(){updateChart()},updateInterval);
}
以下是CylinderPressure.js的内容。
<script type="text/javascript" src="js/CylinderPressure.js"></script>
window.onload=函数(){
var dps=[];//数据点
var chart=new CanvasJS.chart(“表2”{
标题:{
文本:“实时随机数据”
},
数据:[{
键入:“行”,
数据点:dps
}]
});
var xVal=0;
var-yVal=100;
var updateInterval=20;
var dataLength=500;//任意点可见的数据点数量
var updateChart=函数(计数){
计数=计数| | 1;
//count是循环运行以生成随机数据点的次数。
对于(var j=0;jdataLength)
{
dps.shift();
}
chart.render();
};
//生成第一组数据点
updateChart(数据长度);
//在指定时间后更新图表。
setInterval(函数(){updateChart()},updateInterval);
}
它们不是“相互覆盖”,而是替换具有相同名称的方法
为避免此问题,请考虑将两个脚本创建为对象。< /P>
//construct the object by running this "constructor" method
function myObjectName() {
//stuff like default values for this script
this.myAttribute = "default value";
}
myObjectName.prototype.myFunction1 = function(parameter, list){
//what to do, when the function is called.
//access the variables of this object like this:
alert( this.myAttribute );
}
初始化并构建对象(记住存储全局引用,以便于访问):
现在,像平常一样调用函数,但记住对对象的引用:
myObject.myFunction1("value", "List");
向我们展示包含脚本的内容。使用您提供的代码无法判断发生了什么。另外:重写是什么意思?在没有看到HTML和Javascript代码的情况下,使函数的名称不同,例如:“et_function_One()”和“cp_function_One()”。一个小的优点是你可以更好地识别错误的地方@安齐奥
//construct the object by running this "constructor" method
function myObjectName() {
//stuff like default values for this script
this.myAttribute = "default value";
}
myObjectName.prototype.myFunction1 = function(parameter, list){
//what to do, when the function is called.
//access the variables of this object like this:
alert( this.myAttribute );
}
var myObject = new myObjectName();
myObject.myFunction1("value", "List");