Событие onClick не работает для тегов привязки в Firefox - PullRequest
0 голосов
/ 10 марта 2011

Нажатие на мой тег привязки, показанный ниже, не скрывает div notify-parent.Div notify-parent правильно скрыт в IE7 и IE8, но не в Firefox.

<script type="text/javascript">
    function checkClick(e) {
        var obj = e.srcElement;
        if (obj.id != "notify-parent")
            document.getElementById('notify-parent').style.display = 'none';

        return;
    }
</script>

<div id="notify-parent" style="padding-bottom: 10px; margin-top: -10px;">
    <table width="800">
        <tr>
            <td>
                &nbsp;
            </td>
        </tr>
        <tr>
            <td align="center">
                <div id="notify-container">
                    <table style="padding: 10 10 10 10">
                        <tr>
                            <td>&nbsp;
                            </td>
                            <td>&nbsp;
                            </td>
                            <td align="right">
                                <a class="close-notify" onclick="checkClick(event);return false" title="dismiss this notification">
                                    ×</a>
                            </td>
                        </tr>
                        <tr>
                            <td>&nbsp;
                            </td>
                            <td>
                                A message goes here
                            </td>
                        </tr>
                        <td>&nbsp;
                        </td>
                    </table>
                </div>
            </td>
        </tr>
    </table>
</div>

Я попытался добавить href = "#", но это не решило проблему.

Чтоя делаю не так?

Ответы [ 3 ]

2 голосов
/ 10 марта 2011

Вы можете попытаться вернуться к цели.

var obj = e.srcElement? e.srcElement : e.target;
2 голосов
/ 10 марта 2011

В Firefox отсутствует объект srcElement для объекта события. Я могу визуально увидеть это в клопе. Вы можете рассмотреть возможность использования цели. Вы также можете использовать Javascript Framework, который стандартизирует его в разных браузерах. Не могу вспомнить, но я уверен, что JQuery делает это.

Клоп-клоп - это круто, кстати. Я установил точку останова и включил для вас снимок экрана, чтобы вы могли точно видеть, что находится в этом объекте события в Firefox.

FirebugBreakpoint

Также см. https://developer.mozilla.org/en/DOM/event в качестве ссылки.

event.target :: Ссылка на цель, которой было отправлено событие

0 голосов
/ 10 марта 2011

ну, я думаю, что событие onclick работает нормально в IE.Я думаю, что ваша проблема заключается в том, как происходит обработка событий javascript, которая работает в IE, но я не думаю, что она работает в firefox.

вы можете проверить, что вызов сделан в firefox, добавив предупреждение ("тестовое задание");на первую строку, и она должна появиться ...

вместо того, чтобы пытаться сделать это из модели событий, почему бы просто не передать в функцию данные, которые вы хотите знать ...

function checkClick(id) {
        if (id != "notify-parent")
            document.getElementById('notify-parent').style.display = 'none';

        return;
    }

затем внизу вы называете это как ...

 <a class="close-notify" onclick="checkClick('notify-container');return false" title="dismiss this notification">

Это избавит вас от головной боли, потому что каждый браузер реализует модель событий по-своему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...