Вот случай:
<a href="#1" style="height:100px; width:100px;">
<div class="#2"></div>
<div class="#3"></div>
<div class="#4"></div>
<div>
<input onclick="#5" />
</div>
</a>
По умолчанию, если я нажму на # 2, # 3, # 4, # 5, я буду перенаправлен на # 1.
Итак, как мне нужно исправить CSS, если я хочу щелкнуть по вводу без активации №1?
Заранее спасибо!
Да, вы можете сделать это вот так:
<a href="#1" style="height:100px; width:100px;">
<div class="#2"></div>
<div class="#3"></div>
<div class="#4"></div>
<div>
<input onclick="doSomething(); return false;" />
</div>
</a>
Просто поставьте
return(false);
в конце JavaScript, который выполняется при нажатии на вход.
Это интересная проблема, с которой я столкнулся несколько раз.
Вам в основном нужно прослушать событие click на родительском элементе, а затем проверить, является ли он якорем или другим элементом, а затем действовать на него.
$('YOUR ELEMENT').click(function (e) {
var target = $( e.target );
if ( target.is( "a" ) ) {
Do something
}
else if (target.is( "input" ))
{
Do something else
}
});
Хотя я бы не рекомендовал иметь привязку в качестве обертки для div, поскольку в некоторых случаях это прерывается, при таком подходе вы можете легко использовать обертку div с атрибутом data-link и программно перейти к этой ссылке через JavaScript
Предполагая, что ваш тег написан правильно, используйте z-index:
<input type="button" style="z-index:99" onclick="foo()" />
Хотя мне интересно, следует ли пересмотреть макет страницы и избежать такого большого тега ссылки...
<input onclick="#5" />
- жизнь меня удивляет. Что это должно быть?