0
  function Globally() {
    $("#dialogid").dialog({ width: 300, modal: true, show: 'drop', hide: 'drop',
        buttons: {
            "Ok": function () { return true; $(this).dialog('close'); },
            "Cancel": function () { return false; $(this).dialog('close'); }
        }
    });
  }

  function test()
  {
    if(Globally())
      alert("Ok");
    else
      alert("Cancel");
  }

確認ダイアログを作成しようとしていますが、これを関数(この場合はGlobally())に配置したいのですが、これは非常に多くの異なる関数で確認ダイアログを使用しているためですが、これは機能していませんGlobally()。価値を得るtrue or false。ユーザーがを押すまでそこで停止させたいOk or Cancel。これどうやってするの?

4

2 に答える 2

1

そのようなコードを実行したい場合は、組み込みの確認機能を使用する必要があります。

var question = confirm("Proceed?")
if (question){
   // continue
 } else {
   // stop
 }

これは、使用時にのみ確認を行い、JavaScript の実行全体を防ぎ、どちらかの回答 (OK、キャンセル) を選択できるようにするためです。

jQuery ダイアログのようなダイアログはスクリプトの実行を停止できないので、使用しても

if(Globally())
  alert("Ok");
else
  alert("Cancel");

Globally() 関数を実行し、その直後に続行します - ユーザーの回答を待ちません。

本当に jq ダイアログを使用したい場合は、ボタンにコールバック関数を追加してください。

"Ok": function () { callbackFunctionTrue(); },
"Cancel": function () { callbackFunctionFalse(); }

そして、テスト関数で if/else statement() を捨てます。

于 2012-05-19T07:11:23.147 に答える
0

それはそれがどのように機能するかではありません

やるだけ

    "Ok": function () { alert('OK'); $(this).dialog('close'); },
    "Cancel": function () { alert('Not ok'); $(this).dialog('close'); }

また

    "Ok": function () { $(this).dialog('close'); test(1) },
    "Cancel": function () {$(this).dialog('close'); test(0) }

function test(ok){
  alert(ok?"Ok":"Cancel");
}
于 2012-05-19T07:10:36.113 に答える