在html中,我有2个不同ID的链接。当我点击两个id时,代码进入“If”循环的第一个条件。知道什么是错的吗?
Html:
<ul class="megamenu-list menuapp">
<li class="title">Types</li>
<li><a href="app.html" id="sop">SOP</a></li>
<li><a href="app.html" id="tpc">TPC</a></li>
</ul>
我的jquery脚本:
$(document).ready(function(){
var $appload;
$(".menuapp li a").click(function(){
$appload = $(this).attr('id');
alert($appload);
});
if($appload ="tpc"){
alert("insop"); //in both cases the code enters this condition.
$("#dynamic").load("app/sop.html");
}
else if ($appload ="sop"){
alert($appload);
alert(" intpc");
$("#dynamic").load("app/tpc.html");
}
});
答案 0 :(得分:2)
使用==
检查条件。 =
是一个赋值运算符
使用以下代码
if($appload == "tpc")
同样的变更适用于
else if ($appload == "sop"){
您可以使用 this 来理解==
<强>更新强>
根据您的代码,它永远不会进入if
条件中的任何一个。这是因为代码if-else
仅在页面加载时运行一次。
您可以在click事件中移动该条件语句。
您的代码看起来像这样
$(document).ready(function() {
var $appload;
$(".menuapp li a").click(function() {
$appload = $(this).attr('id');
alert($appload);
if ($appload == "tpc") {
alert("insop");
$("#dynamic").load("app/sop.html");
} else if ($appload == "sop") {
alert($appload);
alert(" intpc");
$("#dynamic").load("app/tpc.html");
}
});
});
答案 1 :(得分:0)
将 if语句放入函数并使用 event.preventDefault()来阻止标记的触发网址。
$(document).ready(function(){
var $appload;
$(".menuapp li a").click(function(e){
e.preventDefault();
$appload = $(this).attr('id');
if($appload == "tpc"){
alert("insop"); //in both cases the code enters this condition.
$("#dynamic").load("app/sop.html");
}else if ($appload == "sop"){
alert(appload);
alert(" intpc");
$("#dynamic").load("app/tpc.html");
}
});
});
答案 2 :(得分:0)
<ul class="megamenu-list menuapp">
<li class="title">Types</li>
<li><a href="javascript:void(0)" id="sop">SOP</a></li>
<li><a href="javascript:void(0)" id="tpc">TPC</a></li>
</ul>
<script src="jquery-2.2.1.min.js"></script>
<script>
$(document).ready(function () {
var $appload;
$(".menuapp li a").click(function () {
$appload = $(this).attr('id');
if ($appload == "tpc") {
$("#dynamic").load("app/sop.html");
}
else if ($appload == "sop") {
$("#dynamic").load("app/tpc.html");
}
});
});
</script>