Как использовать JavaScript onclick на Теге Div для переключения видимости раздела, который содержит активируемые по щелчку ссылки?

ОК. Я просто решил это, добавив его пространство имен.

newPhrase2 = '''<d:entry xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="{}" d:title="{}">
            <d:index d:value="{}" d:title="{}"/>
            <h1>{}</h1>
            <div class="ODECN">
                <div class="extras">
                    <h2>{}</h2>
                    <div class="phrase">
                    {}
                    {}
                    </div>
                    <p class="ref">See main entry:
                       <a href="x-dictionary:d:entry://{}#uwid1191809650">do</a>
                    </p>
                </div>
            </div>
        </d:entry>
    '''.format(new_id, title, title, title, title, title, odef_ext, defs, source_title)
8
задан Rob W 27 December 2011 в 22:34
поделиться

3 ответа

Большая часть простого решения состоит в том, чтобы добавить дополнительный onclick обработчик к ссылке в Вашем DIV, который останавливает распространение события:

<div id="toggle_section" 
     onclick="javascript: new Effect.toggle('toggle_stuff', 'slide');">
    <div id="toggle_title">Some title</div>
    <div id="toggle_stuff">
        some content stuff
        <a href="/foo.php"
            onclick="Event.stop(event);"
        >Some link</a>
    </div>
</div>

Вышеупомянутый пример использует Прототип Event.stop() функционируйте для упрощения перекрестной остановки распространения события браузера.

Поскольку Вы используете встроенное onclick() обработчик, большинство (если не все) браузер пересечет событие в пузырящейся фазе сначала (который является тем, что Вы хотите).

Хорошее руководство по пониманию истинных причин позади этого поведения и различий между получением события и распространением событий может быть найдено в превосходном Quirksmode.

7
ответ дан 5 December 2019 в 13:02
поделиться

После того, как я отправил свой первый вопрос, я не мог ожидать, чтобы попытаться думать об этом еще раз, и кажется, что я нашел довольно простой способ достигнуть этого.

Я переместил onlick Effect.toggle в отдельную функцию как:

function someClick(event) {
    if (event.target.nodeName == 'A') {
        return;
    } else {
        new Effect.toggle('toggle_stuff', 'slide');
    }
}

Я предполагаю, что это только работало бы на A теги и ничто еще, которое активируемо по щелчку все же.

2
ответ дан 5 December 2019 в 13:02
поделиться

Я действительно не знаю, работало ли это, но пытаться дать элементу ссылки большее z-index значение, чем toggle_section отделение.

что-то как:

#toggle_section a { z-index: 10; }
0
ответ дан 5 December 2019 в 13:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: