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

По същество искам да извикам две функции при събитие onClick. Работи добре във firefox и chrome, но НЕ и в IE8!

Първата функция трябва да извика модала да се появи (modal показва, че формулярът е в процес на записване - но не се появява), докато втората функция записва формуляра и след това скрива модала.

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
Опитвали ли сте да извикате една функция на onclick и след това да извикате другата функция в нея. Харесайте ТОВА   -  person Syed Ali Taqi    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. net/images/   -  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