Если вы хотите выполнить функцию customDeleteScript () после выполнения deleteRow (), вы можете просто добавить выражение возврата true в конце функции deleteRow (), например
function deleteRow()
{
// other code
return true;
}
и вызовите customDeleteScript () как
if(deleteRow()) customDeleteScript();
Вы можете использовать ответ jfriend00 для регистрации событий, он более динамичен, и регистрация двух отдельных обработчиков событий по этой причине (как вы описали в своем вопросе) не является подходящим способом.
Обновление: После некоторого исследования я обнаружил, что IE запускает зарегистрированные обработчики событий " последним первым пришел (в обратном порядке) " для элемента, который имеет несколько событий. Попробуйте эту скрипку в IE и Chrome / FF . Например
function addEventHandler(to_element,event,handler)
{
if (to_element.addEventListener) to_element.addEventListener(event,handler,false);
else if (to_element.attachEvent) to_element.attachEvent("on"+event,handler);
else return false;
}
function function1()
{
alert("first alert");
}
function function2()
{
alert("second alert");
}
var obj=document.getElementById('obj');
addEventHandler(obj,"click",function1);
addEventHandler(obj,"click",function2);
В Chrome функция 1 будет запущена первой, а затем функция 2 будет запущена , но в IE функция 2 будет запущена первой, а затем функция 1 (в обратном порядке) . Таким образом, в соответствии с вопросом, я думаю, что только одно событие должно быть зарегистрировано и вызывать обе функции в одном и том же обработчике, как
function deleteRow()
{
// other code here
return true;
}
function customDeleteScript()
{
// code here
}
addEventHandler(obj,"click",myHandler);
function myHandler()
{
if(deleteRow()) customDeleteScript();
}