1

私は2つのボタンを持っています。前のボタンがクリックされたかどうかを検出し、2 番目のボタンをクリックするとデータが表示されます。それ以外の場合、ユーザーが 2 番目のボタンを直接クリックしている場合は、アラートが表示されます (最初に前のボタンをクリックしてください)。私はそうしようとしましたが、最初のボタンがクリックされたかどうかを検出できません:-(

HTML

<input type="button" id="btn1" value="button1"></input>
<input type="button" id="btn2" value="button2"></input>

JavaScript

       $('#btn1').click(function(){
           alert('Button 1 Clicked');
        });

        $('#btn2').click(function(event) {
            var inputButton = document.getElementsByTagName('input');
            var $target = $(event.target);
            if( $target.is(inputButton[1]) ) {
                alert("Please click the 1st Button first");
            } else{
                alert('Button 2 Clicked');
            }
        });
4

5 に答える 5

3

編集:変数を使用する理由があまりないため、変数を使用しないことにしました。不必要なスコープの汚染などを回避します。

HTML

<button id="btn1">First Button</button>
<button id="btn2">Second Button</button

JavaScript

$(document).ready(function() {
    $('#btn1').on('click', function() {
        alert('Button 1 clicked');

        $('#btn2').data('btn1-clicked', true);
    });

    $('#btn2').on('click', function() {
        var el = $(this);

        if (el.data('btn1-clicked')) {
            alert('Button 2 clicked');
        } else {
            alert('Please click the 1st button first');
        }
    })
});
于 2013-08-17T20:17:45.820 に答える
2

これを使用して、最初のボタンに関連する true/false を格納する変数を作成できます。

var btn_clicked = false;
$('#btn1').click(function () {
    btn_clicked = true;
    alert('Button 1 Clicked');
});

$('#btn2').click(function (event) {
    var inputButton = document.getElementsByTagName('input');
    var $target = $(event.target);
    if (!btn_clicked) {
        alert("Please click the 1st Button first");
    } else {
        alert('Button 2 Clicked');
    }
});

デモはこちら

于 2013-08-17T20:14:18.347 に答える
1

これを試して、最初のボタンのクリックを追跡するグローバル変数を定義します

   var buttonclicked=false;
   $('#btn1').click(function(){
   buttonclicked=true;
       alert('Button 1 Clicked');
    });

    $('#btn2').click(function(event) {

      if(!buttonclicked){
     alert("please click button1 first")
      }else{
        var inputButton = document.getElementsByTagName('input');
        var $target = $(event.target);
        if( $target.is(inputButton[1]) ) {
            alert("Please click the 1st Button first");
        } else{
            alert('Button 2 Clicked');
        }

    }
    });
于 2013-08-17T20:15:06.823 に答える
0

2番目のボタン機能を最初のボタンに入れることができると思います。

$('#btn1').click(function(){
       alert('Button 1 Clicked');
    $('#btn2').click(function(event) {
        var inputButton = document.getElementsByTagName('input');
        var $target = $(event.target);
           alert('Button 2 Clicked');
        }
    });
  });

また、2 番目のボタンにチェックを入れる必要はありません。

于 2013-08-17T20:14:30.787 に答える
0

フラグ立ててみる

var firstButtonClicked;
$('#btn1').click(function(){
           firstButtonClicked = true;
           alert('Button 1 Clicked');
        });

firstButtonClicked2番目のボタンをクリックしてチェックインします。

于 2013-08-17T20:16:14.167 に答える