JavaScript逻辑,按钮不起作用

时间:2018-07-24 11:16:16

标签: javascript html

我有一些简化的代码,我不知道为什么它不起作用

<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语句来阐明正在显示的对象,然后仅在显示时才运行代码

3 个答案:

答案 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!"); 
            });
        };