IE8 не вызывает две функции JavaScript через событие Onclick

По сути, я хочу вызвать две функции для события onClick. Отлично работает в Firefox и Chrome, но НЕ IE8!

Первая функция должна вызвать появление модального окна (модальное указывает, что форма находится в процессе сохранения, но не появляется), а вторая функция сохраняет форму, а затем скрывает модальное.

HTML

<a onclick="openModal();saveForm();">Click Me</a>

<!-- Modal -->
<div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div id="modal">
        <img id="loader" src="static/images/ajax-loader.gif" />
    </div>
</div>

JavaScript

   function openModal(){
       $('#myModal').modal('show');
   }

   function saveForm(){
    //--- some logic
   }

Заранее спасибо!


person user3908260    schedule 10.09.2014    source источник
comment
Какие-то ошибки в консоли?   -  person Teemu    schedule 10.09.2014
comment
А откуда вы знаете, что func1 не вызывается?   -  person Felix Kling    schedule 10.09.2014
comment
Если вы поместите alert() в func1, вы это увидите?   -  person Barmar    schedule 10.09.2014
comment
Знаете ли вы... подождите... что у jQuery есть довольно причудливый способ добавления обработчиков событий без использования встроенного javascript?   -  person adeneo    schedule 10.09.2014
comment
@adeneo: вы не говорите о learn.jquery.com/events/event-basics, ты аденео? Это удивительно!   -  person Felix Kling    schedule 10.09.2014
comment
Рекомендуется привязывать элемент с помощью JS вместо атрибута onclick, что устранит проблему. developer.mozilla.org/en/docs/Web/API/   -  person GillesC    schedule 10.09.2014
comment
Мои извинения - я изменил свой код (пожалуйста, посмотрите выше). Когда пользователь нажимает на ссылку, должно появиться модальное окно, пока форма сохраняется.   -  person user3908260    schedule 10.09.2014
comment
Вы уверены, что функция не вызывается (как сказал Бармар, что произойдет, если вы добавите предупреждение)? Возможно, метод .modal() просто плохо работает с IE8 (вы знаете, с анимацией и прочим).   -  person Felix Kling    schedule 10.09.2014
comment
Он отлично работает в IE. Тоже отлично работает, если я просто вызываю openModal();. Но не будет работать, если я вызову две функции.   -  person user3908260    schedule 10.09.2014
comment
Что делает saveForm()? Он скрывает модальное окно?   -  person Barmar    schedule 10.09.2014
comment
Спасибо - я пробовал это. Предупреждение, кажется, работает нормально, но модальное окно начальной загрузки не будет.   -  person user3908260    schedule 10.09.2014
comment
saveForm сначала сохранит форму, а затем скроет модальное окно. В других браузерах работает нормально.   -  person user3908260    schedule 10.09.2014
comment
Отображение модального DIV не заставляет сценарий ждать, пока пользователь заполнит его. saveForm() запустится сразу после отображения модального окна, сохранит форму и скроет модальное окно до того, как пользователь увидит модальное окно.   -  person Barmar    schedule 10.09.2014
comment
Модальное окно показывает, что форма находится в процессе сохранения. пример: jqueryscript. сеть/изображения/   -  person user3908260    schedule 10.09.2014


Ответы (1)


Лично мне не нравится прослушивать событие, добавляя атрибут onclick к HTML-элементу. Вместо этого было бы более практично использовать .addEventListener. Я также могу порекомендовать вам jQuery. В jQuery вы должны написать:

$('a').click(function(){
  func1();
  func2();
}
person quacodas    schedule 10.09.2014
comment
Это стилистическое предпочтение. Почему вы думаете, что это решит его проблему с исходным кодом? - person Barmar; 10.09.2014
comment
Ну, по крайней мере, это стоит попробовать, когда это не работает с его версией по какой-либо причине @Barmar - person quacodas; 10.09.2014
comment
Если вы пытаетесь решить проблему, перекодировать ее таким образом — просто пустая трата времени. Нет абсолютно никакого способа, чтобы это могло изменить поведение. - person Barmar; 10.09.2014