私は以下を持っています
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
confirm('Dialogue');
}
});
しかし、確認機能をブール化したいと思います。私はすでに試しました
$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var confirm=confirm('Dialogue');
if (confirm==true) {
alert('true');
} else {
alert('false');
}
}
});
ただし、確認ボックスは生成されません。どうすればこれを達成できますか?
いくつか問題があります。最初の問題は、confirm
という名前の変数を定義していることです。良くない!名前をisGood
などに変更します。
他のバグはここにあります:
if (confirm=true) {
confirm=true
は代入であり、比較ではありません。
それはする必要があります
if (confirm==true) {
あるいは単に
if (confirm) {
したがって、コードは次のようになります
var bar = "bar";
$("button").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var isGood=confirm('Dialogue');
if (isGood) {
alert('true');
} else {
alert('false');
}
}
});
if( !confirm('Are you sure you want to continue?')) {
return false;
}
関数内の任意の場所で変数を宣言すると、ローカル変数として自動的に「プル」されます。関数としてconfirmを呼び出すと、ローカル変数(まだ定義されていない)が最初に検出され、関数が存在するwindow
までスコープチェーンが上に移動しません。
_$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
var confirm=confirm('Dialogue');
if (confirm==true) {
alert('true');
} else {
alert('false');
}
}
});
_
と同じです
_$("element").click(function() {
var foo=bar, confirm = undefined;
if ( foo == "bar" ) {
confirm=confirm('Dialogue');
...
});
_
1)変数の名前を変更する、2)window.confirm("Dialog")
を呼び出して、ローカル変数の代わりにグローバル関数が必要であることを伝えるか、3)確認の呼び出しをif内に置く
_$("element").click(function() {
var foo=bar;
if ( foo == "bar" ) {
if (confirm('Dialogue')) {
alert('true');
} else {
alert('false');
}
}
});
_
比較に関するコメントはすべて正しいですが、確認ダイアログが表示されないのは、確認ボックスオブジェクトを消去しているためです。
confirm
varの名前を変更します。
$(element).click(function() {
var confirm1 = confirm('Dialogue');
if (confirm1) {
alert('true');
} else {
alert('false');
}
});
これを、機能しないこの1つと比較してください。
$(element).click(function() {
var confirm = confirm('Dialogue');
if (confirm) {
alert('true');
} else {
alert('false');
}
});
試す
if (confirm) {
alert('true');
} else {
alert('false');
}
私の最初の問題はあなたの主な問題です
var foo=bar;
if ( foo == "bar" ) {
バーとは?次の割り当てを行うつもりだったと思いますvar foo="bar";
これにより、ifステートメントがtrueと評価され、確認ダイアログが実行されます。
さらに、以下は不正確です
var confirm = confirm("dialog");
if (confirm=true)
これを使うだけです:
if (confirm("dialog"))
追加 .confirm
クラスを要素に設定し、jQueryで書き込みます。
$('.confirm').click(function() {
return confirm("Are you sure?");
});