Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在我的下拉脚本中使用preventDefault?_Javascript_Jquery_Html_Drop Down Menu - Fatal编程技术网

Javascript 如何在我的下拉脚本中使用preventDefault?

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'); }); 您应该在处理

我已经为一个简单的下拉菜单编写了一些javascript。但是在我的下拉链接中,我使用了hashtags作为href属性的占位符(
(由于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();
文档
。我的只需将它添加到
类的元素下
导航列表项