2011-09-26 65 views
1

我想創建這樣定製確認框暫停執行

var should_I_move_forward = myconfirmbox(); 

myconfirmbox一個自定義的確認框會顯示是/否按鈕彈出,我想在這裏暫停執行,直到用戶打yes或no ,我該如何實現它?

即與js相同的功能確認方法購買我自己的用戶界面。

+2

暫停執行什麼?只需從確認框中回撥即可 –

回答

2

你不能。

你必須移動後面的myconfirmbox方法中確認的邏輯,或將其作爲參數傳遞(按需調用)..

function ConfirmYes(){ 
    // do something for Yes 
} 

function ConfirmNo(){ 
    // do something for No 
} 

function myconfirmbox(yesCallback, noCallback){ 

    // whatever you currently do and at the end 

    if (confirmation == 'yes'){ 
     yesCallback(); 
    } else { 
     noCallback(); 
    } 

} 

myconfirmbox(ConfirmYes, ConfirmNo); 
1

我根本沒有優雅,但它對我來說工作得很好!我創建一個自定義的確認功能,如:

function jqConf(msg,y,n){ 
    $('body').append('<div id="confirmBox">msg</div>'); 
    $('#confirmBox').append('<div id="confirmButtons"></div>'); 
    $('#confirmButtons').append('<button onclick="'+y+'();">Yes</button>'); 
    $('#confirmButtons').append('<button onclick="'+n+'();">No</button>'); 
} 

function defaultYes(){ 
    alert('Awesomeness!'); 
} 

function defaultNo(){ 
    alert('No action taken!'); 
} 

的我用這樣的:

<button onclick="jqConf('Do you love me?','defaultYes','defaultNo')">Confirm</button> 

這樣,我作爲一個字符串傳遞到運行該函數的名稱,如果是,如果沒有個別及由用戶事件執行。

正如我所說,沒有優雅,但它的工作!,沒有循環或混亂的代碼,我認爲呢?,在這個例子中,我使用jQuery,但也可以用純JavaScript完成!