Выберите тег внутри проблемы с гиперссылкой - PullRequest
1 голос
/ 20 июня 2010

Я упростил свою страницу и вот что у меня есть:

<html>
<head>
<meta http-equiv="content-type" content="text/plain; charset=utf-8" />
<title>Title</title>
<style>
    a {
        text-decoration: none;
    }

    div select {
        margin-top: 20px;
        display: block;
    }
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
<script>
    $('div').click(function(){
                        return false;
                        });
</script>


</head>

<body>
<a href="#############">
<img src="preview_image" />
    <div>
        <input type="text" value="" />
        <select>
            <option value="default" selected>choose</option>
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
        </select>
    </div>
</a>
</body>
</html>

Основная идея заключается в том, что у меня есть тег гиперссылки "A", внутри которого есть DIV с INPUT и SELECT внутри.

Какова моя цель: когда я помещаю текст в INPUT и когда я выбираю опцию в SELECT - родительская гиперссылка не должна срабатывать.

Я пытался исправить это с помощью «return false», нопохоже, это не помогает.

Кроме того, у меня есть некоторые проблемы в Mozilla FF: SELECT не выбирает любое значение, какое бы вы ни выбрали в списке.Это всегда оставляется как "выбирать"


UPD

единственная оставленная проблема - это поведение SELECT внутри A-гиперссылки в FireFox.У меня есть версия FF 3.6.3, и поведение такое, когда я выбираю опцию из SELECT, она не устанавливается как выбранное.Во всех остальных браузерах, кажется, работает правильно.

Ответы [ 2 ]

0 голосов
/ 20 июня 2010

Проблема с вашим подходом: все содержится в этом элементе ссылки.Таким образом, теоретически, браузер прав, если предположить, что все, что нажимается внутри этого A-тега, щелкает ссылку.Даже если подумать, что это может работать по-разному для некоторых браузеров и привести к желаемому поведению, я сомневаюсь, что такое поведение одинаково для всех пользовательских агентов.Следовательно, я не понимаю, каким образом можно сделать это надежно, не избавляясь от элемента A, соответственно перемещая элемент A так, чтобы он располагался только вокруг изображения (что вы хотите):1002 *

0 голосов
/ 20 июня 2010

Даже если я не знаю, для чего вам нужна вся ваша конструкция <a><div>..., в любом случае вы должны поместить свой скрипт в блок ready (), чтобы он выполнялся при загрузке страницы:

$(document).ready(function(){

   $('div').click(function(){
        return false;
   });

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