Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.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 如何在main.js中的e.preventDefault()之后的一个页面上启用默认值?_Javascript - Fatal编程技术网

Javascript 如何在main.js中的e.preventDefault()之后的一个页面上启用默认值?

Javascript 如何在main.js中的e.preventDefault()之后的一个页面上启用默认值?,javascript,Javascript,我搜索了stackoverflow,有一些关于这个问题的主题,但不完全是我想要的。我使用的wordpress主题最近更新了,现在在main.js-collapse数据api中有: $(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) { var $this = $(this), href; var target = $this.attr('data-target') |

我搜索了stackoverflow,有一些关于这个问题的主题,但不完全是我想要的。我使用的wordpress主题最近更新了,现在在main.js-collapse数据api中有:

$(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
var $this   = $(this), href;
var target  = $this.attr('data-target')
    || e.preventDefault()
    || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, ''); //strip for ie7
var $target = $(target);
var data    = $target.data('bs.collapse');
var option  = data ? 'toggle' : $this.data();
var parent  = $this.attr('data-parent');
var $parent = parent && $(parent);

if (!data || !data.transitioning) {
  if ($parent) $parent.find('[data-toggle=collapse][data-parent="' + parent + '"]').not($this).addClass('collapsed');
  $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed');
}

$target.collapse(option);
});
问题是,行
e.preventDefault()
阻止了页面下拉菜单中的链接打开它们链接到的内容部分(页面上有#div,单击后会显示-
display:none
-->
display:block;

无论如何,我的问题是-我可以为整个页面启用默认操作吗?我只需要为这个特定的页面使用它,我不能更改main.js代码,因为它会影响其他页面。我找到的所有解决方案都是关于使用
onclick
将return设置为true,但我希望有一个
,我可以将它放在页面内容中,它只启用此页面的默认操作,比如加载或其他操作。如果它是可能的,或者它必须与事件相连接?很抱歉,我不是JavaScript程序员,我只需要修复更新中出现的问题


感谢您从您提供的代码中提供的任何建议,只有当相关的
[data toggle=collapse]
元素没有
数据目标属性时,
e.preventDefault()
才会被点击:

var target  = $this.attr('data-target')
              || e.preventDefault()
              || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '');
<div data-target="..." data-toggle=collapse></div>
它的作用是:

  • 尝试将
    $this.attr('data-target')
    的值分配给
    target
    变量
  • 如果元素上不存在
    数据目标
    属性,则将其设置为调用
    e.preventDefault()
    的结果
  • 如果该操作失败(它将始终作为
    e.preventDefault()
    返回任何内容),请将其设置为元素的
    href
    ,替换一些位
  • 如果元素具有
    数据目标
    属性,则不会命中
    e.preventDefault()

    var target  = $this.attr('data-target')
                  || e.preventDefault()
                  || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '');
    
    <div data-target="..." data-toggle=collapse></div>
    
    
    
    您好,谢谢您的回答。我尝试将数据目标和数据切换分配给我的按钮,它们会打开内容,但问题是,当您点击下一个按钮/链接时,它不会隐藏上一个按钮打开的内容。要关闭它,您需要再次单击该按钮。这是网站:和我的下拉菜单分配给的数据目标位于右上角:“Certyfikat”。