2011-11-10 15 views
13

裏面我有以下使用Javascript - 確認()一個jQuery。點擊()函數

$("element").click(function() { 
    var foo=bar; 
    if (foo == "bar") { 
    confirm('Dialogue'); 
    } 
}); 

但我想BOOL所確認的功能。我已經試過

$("element").click(function() { 
    var foo=bar; 
    if (foo == "bar") { 
    var confirm=confirm('Dialogue'); 
    if (confirm==true) { 
     alert('true'); 
    } else { 
     alert('false'); 
    } 
    } 
}); 

但是沒有生成確認框。我怎樣才能做到這一點?

+0

'(確認=真)'應該是'(確認==真)'或'(確認)'也是在這方面有什麼吧'變種富= bar' –

回答

20

您有幾個問題。第一個問題是你正在定義一個名稱爲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'); 
    } 
    } 
}); 
+0

愚蠢我和我的noobie打字錯誤。這是因爲我有confirm = true而不是confirm == true。 =/ – Mechaflash

1

嘗試

if (confirm) { 
     alert('true'); 
    } else { 
     alert('false'); 
    } 
0

我最初雖然是你的主要問題就出在這裏

var foo=bar; 
    if (foo == "bar") { 

是什麼吧?我相信你打算做以下分配var foo="bar";這將使if語句評估爲true並執行您的確認對話框。

此外,下列不正確

var confirm = confirm("dialog"); 
if (confirm=true) 

只是用這樣的:

if (confirm("dialog")) 
+0

heh?當執行一個var ==字符串時,字符串總是被引號括起來(根據用途不同,可以是單引號或者雙引號),否則它會被作爲變量而不是字符串進行計算。所以不,它不會寫成foo =「bar」。但你的第二部分是真實的。 -1 +1 – Mechaflash

5

所有關於比較的意見是正確的,但是,在確認對話框不顯示的原因是,您正在清除確認框對象。

更改confirm變種的名稱。

$(element).click(function() { 
    var confirm1 = confirm('Dialogue'); 
    if (confirm1) { 
    alert('true'); 
    } else { 
    alert('false'); 
    } 
}); 

http://jsfiddle.net/xjGZj/

與此相比,這一個不工作。

$(element).click(function() { 
    var confirm = confirm('Dialogue'); 
    if (confirm) { 
    alert('true'); 
    } else { 
    alert('false'); 
    } 
}); 

5

當你在函數的任何位置聲明一個變量,它會自動被「拉」到頂部的局部變量。當您將確認作爲函數調用時,它會首先查找局部變量(尚未定義),並且不會將範圍鏈上升到功能所在的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)只是把確認電話內部的,如果

$("element").click(function() { 
    var foo=bar; 
    if (foo == "bar") { 
    if (confirm('Dialogue')) { 
     alert('true'); 
    } else { 
     alert('false'); 
    } 
    } 
}); 
10
if(!confirm('Are you sure you want to continue?')) { 
        return false; 
    } 
0

添加.confirm類元素噸母雞在jQuery的寫..

$('.confirm').click(function() { 

    return confirm("Are you sure?"); 

});