Javascript 如何在我的下拉脚本中使用preventDefault?
我已经为一个简单的下拉菜单编写了一些javascript。但是在我的下拉链接中,我使用了hashtags作为href属性的占位符(Javascript 如何在我的下拉脚本中使用preventDefault?,javascript,jquery,html,drop-down-menu,Javascript,Jquery,Html,Drop Down Menu,我已经为一个简单的下拉菜单编写了一些javascript。但是在我的下拉链接中,我使用了hashtags作为href属性的占位符((由于iframe-codepen使用了hashtag,因此它没有将hashtag添加到url) 您应该在处理程序中传递事件: $(document).click(function(e){ e.preventDefault(); $(".Navigation-list--dropdown").addClass('is-hidden'); }); 您应该在处理
(由于iframe-codepen使用了hashtag,因此它没有将hashtag添加到url)
您应该在处理程序中传递事件:
$(document).click(function(e){
e.preventDefault();
$(".Navigation-list--dropdown").addClass('is-hidden');
});
您应该在处理程序中传递事件:
$(document).click(function(e){
e.preventDefault();
$(".Navigation-list--dropdown").addClass('is-hidden');
});
我不确定我是否正确,但我认为这很简单,只需将e.preventDefault添加到first click方法中即可
$(document).ready(function() {
$('.Navigation-listItem').click(function(e) {
e.preventDefault();
if( $(this).children('.Navigation-list--dropdown').hasClass('is-hidden') ){
$(".Navigation-list--dropdown").addClass('is-hidden');
$(this).children('.Navigation-list--dropdown').removeClass('is-hidden');
} else {
$(".Navigation-list--dropdown").addClass('is-hidden');
}
});
$('.Navigation-listItem .Navigation-list--dropdown').click(function(e) {
e.stopPropagation();
});
});
我不确定我是否正确,但我认为这很简单,只需将e.preventDefault添加到first click方法中即可
$(document).ready(function() {
$('.Navigation-listItem').click(function(e) {
e.preventDefault();
if( $(this).children('.Navigation-list--dropdown').hasClass('is-hidden') ){
$(".Navigation-list--dropdown").addClass('is-hidden');
$(this).children('.Navigation-list--dropdown').removeClass('is-hidden');
} else {
$(".Navigation-list--dropdown").addClass('is-hidden');
}
});
$('.Navigation-listItem .Navigation-list--dropdown').click(function(e) {
e.stopPropagation();
});
});
试试这个
$('.Navigation-listItem .Navigation-list--dropdown').click(function(e) {
e.preventDefault();
});
试试这个
$('.Navigation-listItem .Navigation-list--dropdown').click(function(e) {
e.preventDefault();
});
那要看情况,但有一种方法是这样的
$('.Navigation-listItem').click(function(e) {
if( $(this).children('.Navigation-list--dropdown').hasClass('is-hidden') ){
$(".Navigation-list--dropdown").addClass('is-hidden');
$(this).children('.Navigation-list--dropdown').removeClass('is-hidden');
} else {
$(".Navigation-list--dropdown").addClass('is-hidden');
}
}).children('a.Navigation-link--dropdownTrigger').click(function(e){e.preventDefault();}); // add this line
这要看情况而定,但有一种方法是这样的
$('.Navigation-listItem').click(function(e) {
if( $(this).children('.Navigation-list--dropdown').hasClass('is-hidden') ){
$(".Navigation-list--dropdown").addClass('is-hidden');
$(this).children('.Navigation-list--dropdown').removeClass('is-hidden');
} else {
$(".Navigation-list--dropdown").addClass('is-hidden');
}
}).children('a.Navigation-link--dropdownTrigger').click(function(e){e.preventDefault();}); // add this line
我想我应该在第15行和第42行(行号在代码笔上)之前添加函数e.preventDefault();我想我应该在第15行和第42行(行号在代码笔上)之前添加函数e.preventDefault();我应该在第42行之前添加它吗(最后一段代码,在e.stopPropagation();
行之前)?这应该没有必要,但您可以尝试一下,您会看到:-)我刚刚注意到,您已经将.Navigation listeItem列为li,因此您需要按照Reigel的建议对子元素“a”使用preventDefault()。我是否也应该将它添加到第42行之前(最后一段代码,在e.stopPropagation();
行之前)?这应该不是必需的,但是您可以尝试一下,您将看到:-)我刚刚注意到,您已经将.Navigation listeItem列为li,因此您需要使用preventDefault()正如Reigel所建议的,在子元素“a”上。你的方法和Jakob Kotula所建议的方法在功能上有什么不同吗?或者只是语法不同吗?他的代码将e.preventDefault();
添加到文档中
。我的只会将它添加到
类导航列表项下的元素中。你的方法和Jakob Kotula建议的方法在功能上有什么不同吗?或者只是语法不同吗?他的代码将e.preventDefault();
到文档
。我的只需将它添加到
类的元素下导航列表项
。