4

これら 2 つのコード セットがあります。1 つは、ボタンがクリックされるたびにプロンプ​​トを表示することです。

$('.button_class').click(function(){
    var baker_url = base_url + 'baker/baker/manage/Bread/1';
    var answer = confirm('Are you sure?');
    if(answer == true){
        // if this is true, i will call an external script so that within this condition that process will be executed
    }
    else if(answer == false){
        return false; // exits
}
});

ここにあるこのコードは、ボタンがクリックされたときにプロセスを実行する役割を果たします。

$('.another_button_class').click(function(e){
        e.preventDefault();
        var baker_url = base_url + 'baker/baker/manage/Bread/1';
        var form    = '#'+ $(this).attr('rel');
        var url     = $(form).attr('action');
        var target  = '#'+ $(form).attr('rel');
            $(target).slideUp();
            $.post(url, $(form).serialize(),function(data) {
                $(target).html(data).slideDown(function(){
                    if(data == '<div class="ok">Added</div>'){
                    setTimeout(refresh,1000)
                    c();
                    window.location = baker_url; // sets the url after refreshing
                    }
                });

            });
    });

最初の関数ではanswer == true、後者の関数(ボタンがクリックされたときに処理が実行されるもの)を実行したい場合。

別の関数またはイベント ハンドラーを呼び出して、別の関数内でそのプロセスを実行することは本当に可能ですか?

4

2 に答える 2

3

それがあなたの望むものかどうかわからない

if(answer == true){
    // if this is true, i will call an external script so that within this condition that process will be executed
    $('.another_button_class').trigger('click');
}

これにより、要素にバインドされたクリック イベント ハンドラーの呼び出しがトリガーされます$('.another_button_class')


最初のクリックでも必ず使用e.preventDefault();してください。そうしないと、リンクがたどられます

于 2012-05-25T09:10:14.200 に答える
2

私が質問を正しく理解していれば、ボタン #2 をクリックしたとき、またはボタン #1 をクリックしてプロンプトで [はい] をクリックしたときに発生する必要がある効果がありますか? もしそうなら、私は3つのオプションを考えることができます:

  1. 2 番目の関数に名前を付けて、eが未定義の場合に機能するようにします。それが実際に行うことは、デフォルトを防ぐことだけです。その後、最初のイベントから名前付き関数を呼び出すことができます。

  2. e.preventDefault();1 のより良いバージョン: 2 番目のコード以外のすべてを実行する新しい関数を作成します。その後、両方のイベントからこれを呼び出すことができます。

  3. 最初のボタンで「はい」が選択されている場合、jQuery を使用して 2 番目のボタンのクリック イベントをシミュレートします。

編集この場合、2番目のものが望ましいでしょう。何かのために実際にイベント オブジェクトが必要な場合は、3 番目のものを使用します。

于 2012-05-25T09:14:31.623 に答える