Я пытаюсь предотвратить действие щелчка по умолчанию в пункте меню в WordPress. Я могу добавить класс noclick к элементу меню, но класс находится в элементе -li-.
<li class="noclick"><a href="http://google.com">Google</a></li>
Моя первая попытка:
<script type='text/javascript'>
$('.noclick').click(function(e) {
e.preventDefault();
});
</script>
Затем я понял, что мне нужно настроить элемент -a, и я не уверен, как это сделать. Любая помощь приветствуется.
Элемент LI не имеет действия по умолчанию, когда вы его нажимаете, якорь имеет
$('.noclick a').click(function(e) {
e.preventDefault();
});
И Wordpress использует режим noConflict по умолчанию, что означает, что $ undefined, поэтому
jQuery(function($) {
$('.noclick a').click(function(e) {
e.preventDefault();
});
});
Единственная проблема, которую я вижу, это то, что ваш код не находится внутри обработчика dom
jQuery(function ($) {
$('.noclick').click(function (e) {
e.preventDefault();
});
})
Событие click от элемента a
будет передано в элемент li
чтобы вы могли зарегистрировать обработчик для элемента li
а затем вызвать preventDefault()
в этом mehtod
Убедитесь, что область действия безопасна для использования функции $, например:
jQuery(function($) {
...
});
то, если вы хотите предотвратить действие кликов по умолчанию для определенного элемента меню, вам следует попробовать:
$(".noclick>a[href*='http://google.com']")
или
$(".noclick a[href*='google.com']")
а затем, если вы действительно хотите предотвратить все действия кликов, выполните следующие действия:
jQuery(function($) {
if($(".noclick>a[href*='http://google.com']").length>1){
$(".noclick>a[href*='http://google.com']")[0].onclick = function(){
return false;
}
}
else{
//it means there is something wrong with your query
}
});
это отключит все действия, даже если они будут проигнорированы, если вы сделаете это, используя jQuery e.preventDefault();
почему нет:
<script type='text/javascript'>
$('.noclick a').click(function(e) {
e.preventDefault();
});
</script>
это будет нацелено a
элементы, которые являются дочерними элементами с классом noclick