我有一些简化的代码,我不知道为什么它不起作用
<html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js">
</script>
<div>
<button class="submit1">update</button>
</div>
<br>
<div>
<button class="submit2">submit</button>
</div>
<br>
<div class="result"></div>
<script>
var myvar = 1;
$(".submit1").on('click',function(){
myvar = 2;
});
if(myvar == 2){
$(".submit2").on('click',function(e){
$('.result').html("it works!");
});
};
</script>
</html>
myvar最初不是2的事实似乎本质上忽略了javascript的最后一部分,但是我不明白为什么,因为我之前从未遇到过此类问题。任何帮助将不胜感激!
edit(摘自评论):那几乎就是我想要的,抱歉,我没有指定。我有一些隐藏和显示的对象,当在每个隐藏和显示的对象上单击提交按钮或按Enter时,我会运行一些更密集的代码。但是我的问题是,当我按Enter键时,所有代码都运行了,我试图做出一个if语句来阐明正在显示的对象,然后仅在显示时才运行代码
答案 0 :(得分:2)
我只能猜测,但我相信您是想这样做?
var myvar = 1;
$(".submit1").on('click', function() {
myvar = 2;
});
$(".submit2").on('click', function(e) {
$('.result').html(myvar == 2 ? "it works!":"Click update first");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div>
<button class="submit1">update</button>
</div>
<br>
<div>
<button class="submit2">submit</button>
</div>
<br>
<div class="result"></div>
或者也许:
$(".submit1").on('click', function() {
$(".submit2").show();
});
$(".submit2").on('click', function(e) {
$('.result').html("it works!");
});
.submit2 { display:none }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<div>
<button class="submit1">update</button>
</div>
<br>
<div>
<button class="submit2">submit</button>
</div>
<br>
<div class="result"></div>
答案 1 :(得分:0)
使用现有代码的更好方法是
var myvar = 1; $(".submit1").on('click',function(){ myvar = 2; }); $(".submit2").on('click',function(e){ if(myvar == 2){ $('.result').html("it works!"); } });
答案 2 :(得分:0)
正确而简单的答案是:
var myvar = 1;
$(".submit1").on('click',function(){
myvar = 2;
});
$(".submit2").on('click',function(e){
if(myvar == 2){
$('.result').html("it works!");
});
};