2015-08-20 5 views
0

Я сделал функцию подтверждения, которая показывает специальный div для подтверждения или нет. Задача состоит в том, что когда я подтверждаю какое-то действие, мне нужно вызвать другую функцию, которую мне нужно записать в атрибут onClick в моей кнопке.Javascript вызов специальной функции после подтверждения

Существует то, что я хочу:

<button onClick="jsShowConfirmDiv(); jsMyFunction()"> 
    <span>Edit</span> 
</button> 

Это одна кнопка, а другой будет что-то вроде этого:

<button onClick="jsShowConfirmDiv(); jsAnotherFunction()"> 
    <span>Detail</span> 
</button> 

Я должен позвонить функции (jsMyFunction() и jsAnotherFunction (), только когда я нажимаю кнопку «Да».

Для лучшего воображения есть функция в реальной версии (работающая, но безграничная по параметру, и я думаю, что это плохое решение):

function jsShowConfirmMessage(content, yesFunction, par1, par2, par3) { 
    $("id_confirm_message").setAttribute("classType", "confirm"); 
    $("id_popup_confirm_content").innerHTML = content; 

    $("id_confirm_message_overlay").className = "popup_visible"; 
    window.location.hash = "#id_confirm_message_overlay"; 

    $("id_confirm_yes").stopObserving('click'); 

    $("id_confirm_yes").observe('click', function() { 
    jsHideConfirmMessage(); 
    if (!par1) { 
     yesFunction(); 
    } else if (!par2) { 
     yesFunction(par1); 
    } else if (!par3) { 
     yesFunction(par1, par2); 
    } else { 
     yesFunction(par1, par2, par3); 
    } 

    }); 

} 

И я называю это так:

<button onClick="jsShowConfirmMessage('Really?', jsSpecialFunction, 'param')"> 
    <span>Edit</span> 
</button> 

Спасибо за ваш ответ.

ответ

0

Если пользователь не нажал (или отменил, ...), вы можете создать исключение. Исключение прекращения выполнения команд и вторая (третья, ....) функция не будут вызываться.

+0

Я хочу создать что-то без исключений, есть ли какое-нибудь решение? –

+0

Да, вы можете установить функцию, которую вы хотите назвать успешной (нажата кнопка ОК) в качестве параметра (обратный вызов), и в случае успеха вызовите его. – Misaz

Смежные вопросы