2 菜单javascripts相互冲突
2 Menu javascripts conflicting with echother
我有 2 个 javascript 菜单相互冲突。他们互相打开,例如,如果我单击 1 个菜单的菜单按钮,它将打开另一个菜单。这是两个菜单的 javascripts,所以问题是,如何让它们不相互混淆?
这是新的 javascript,当我添加这个 javascript 时,它开始干扰现有的 javascript 菜单。
这是第一个 javascript
的菜单
<div class="topnavmem" id="myTopnavmem">
<a href="#">Link</a>
<a href="#">link1</a>
<a href="#">link2</a>
<a href="#">link3</a>
<a href="#">link4</a>
<a href="javascript:void(0);" class="iconmem" onclick="myFunction()">
<i class="fa fa-bars"></i>
</a>
</div>
<script>
function myFunction() {
var x = document.getElementById("myTopnavmem");
if (x.className === "topnavmem") {
x.className += " responsivemem";
} else {
x.className = "topnavmem";
}
}
</script>
这是现有的javascript菜单,是旧菜单,然后我在上面添加了新的javascript菜单
它开始干扰这个脚本,所以我怎样才能让每个 javascript 不同,我认为问题出在 myfunction?
这是第二个菜单 javascript
<div class="topnav">
<div id="myLinks">
<a href="#" style="background: #243144;padding: 6px 16px;">Link</a>
<div id="topnav-subnav">
<a href="#">Link</a>
</div>
<a href="#" style="background: #243144;padding: 6px 16px;">Link</a>
<div id="topnav-subnav">
<a href="#">Link</a>
</div>
<a href="#about" style="background: #243144;padding: 6px 16px;">Link</a>
<div id="topnav-subnav">
<a href="#">Link</a>
</div>
<a href="# style="background: #243144;padding: 6px 16px;">Link</a>
<div id="topnav-subnav">
<a href="#">Link</a>
</div>
</div>
<a href="javascript:void(0);" class="topnavicon" onclick="myFunction()">
<i class="fa fa-bars"></i>
</a>
</div>
<script type="text/javascript">
function myFunction() {
var x = document.getElementById("myLinks");
if (x.style.display === "block") {
x.style.display = "none";
} else {
x.style.display = "block";
}
}
</script>
您为这两个函数使用了相同的名称。你需要给他们不同的名字,理想情况下应该比 myFunction
.
更具描述性
所以你可以把第二个代码改成
<a href="javascript:void(0);" class="topnavicon" onclick="topNavFunction()">
<i class="fa fa-bars"></i>
</a>
<script type="text/javascript">
function topNavFunction() {
var x = document.getElementById("myLinks");
if (x.style.display === "block") {
x.style.display = "none";
} else {
x.style.display = "block";
}
}
</script>
我有 2 个 javascript 菜单相互冲突。他们互相打开,例如,如果我单击 1 个菜单的菜单按钮,它将打开另一个菜单。这是两个菜单的 javascripts,所以问题是,如何让它们不相互混淆?
这是新的 javascript,当我添加这个 javascript 时,它开始干扰现有的 javascript 菜单。
这是第一个 javascript
的菜单<div class="topnavmem" id="myTopnavmem">
<a href="#">Link</a>
<a href="#">link1</a>
<a href="#">link2</a>
<a href="#">link3</a>
<a href="#">link4</a>
<a href="javascript:void(0);" class="iconmem" onclick="myFunction()">
<i class="fa fa-bars"></i>
</a>
</div>
<script>
function myFunction() {
var x = document.getElementById("myTopnavmem");
if (x.className === "topnavmem") {
x.className += " responsivemem";
} else {
x.className = "topnavmem";
}
}
</script>
这是现有的javascript菜单,是旧菜单,然后我在上面添加了新的javascript菜单 它开始干扰这个脚本,所以我怎样才能让每个 javascript 不同,我认为问题出在 myfunction?
这是第二个菜单 javascript
<div class="topnav">
<div id="myLinks">
<a href="#" style="background: #243144;padding: 6px 16px;">Link</a>
<div id="topnav-subnav">
<a href="#">Link</a>
</div>
<a href="#" style="background: #243144;padding: 6px 16px;">Link</a>
<div id="topnav-subnav">
<a href="#">Link</a>
</div>
<a href="#about" style="background: #243144;padding: 6px 16px;">Link</a>
<div id="topnav-subnav">
<a href="#">Link</a>
</div>
<a href="# style="background: #243144;padding: 6px 16px;">Link</a>
<div id="topnav-subnav">
<a href="#">Link</a>
</div>
</div>
<a href="javascript:void(0);" class="topnavicon" onclick="myFunction()">
<i class="fa fa-bars"></i>
</a>
</div>
<script type="text/javascript">
function myFunction() {
var x = document.getElementById("myLinks");
if (x.style.display === "block") {
x.style.display = "none";
} else {
x.style.display = "block";
}
}
</script>
您为这两个函数使用了相同的名称。你需要给他们不同的名字,理想情况下应该比 myFunction
.
所以你可以把第二个代码改成
<a href="javascript:void(0);" class="topnavicon" onclick="topNavFunction()">
<i class="fa fa-bars"></i>
</a>
<script type="text/javascript">
function topNavFunction() {
var x = document.getElementById("myLinks");
if (x.style.display === "block") {
x.style.display = "none";
} else {
x.style.display = "block";
}
}
</script>