Javascript 如何在main.js中的e.preventDefault()之后的一个页面上启用默认值?
我搜索了stackoverflow,有一些关于这个问题的主题,但不完全是我想要的。我使用的wordpress主题最近更新了,现在在main.js-collapse数据api中有: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') |
$(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”。