Jquery preventDefault()不起作用
我通过一些jQuery函数实现了动画导航。这一切都很好,但有一件事让我抓狂。最后一项(第nb.5项)应该将您重定向到新页面,但不会发生。我有下面代码的前几行的条件Jquery preventDefault()不起作用,jquery,redirect,preventdefault,Jquery,Redirect,Preventdefault,我通过一些jQuery函数实现了动画导航。这一切都很好,但有一件事让我抓狂。最后一项(第nb.5项)应该将您重定向到新页面,但不会发生。我有下面代码的前几行的条件 $(document).ready(function(){ $('li > a').on('click', function(e) { if ($(this).parent().has('p')) { e.preventDefault(); }
$(document).ready(function(){
$('li > a').on('click', function(e) {
if ($(this).parent().has('p')) {
e.preventDefault();
}
if (!$(this).hasClass('active')) {
$('li a').next('p').stop().slideUp();
$(this).next('p').stop().slideDown();
$('li a').removeClass('active');
$(this).addClass('active');
}
else if ($(this).hasClass('active')) {
$(this).next('p').stop().slideUp();
$(this).removeClass('active');
}
})
})
演示:
描述:将匹配的元素集减少为具有与选择器或DOM元素匹配的后代的元素集
返回:jQuery
.has()
返回一个jQuery对象
使用.find('p')。length
或.has('p')。length
代替。has('p')
:
描述:将匹配的元素集减少为具有与选择器或DOM元素匹配的后代的元素集
返回:jQuery
.has()
返回一个jQuery对象
使用.find('p')。length
或.has('p')。length
代替。has('p')
:
.has()
返回一个不是布尔值的jQuery对象
只需将您的if更改为:
if (!($(this).hasClass("odkaz"))) {
e.preventDefault();
}
代码:
.has()
返回一个不是布尔值的jQuery对象
只需将您的if更改为:
if (!($(this).hasClass("odkaz"))) {
e.preventDefault();
}
代码:
不返回布尔值。它返回一个jQuery对象。从文档中:
将匹配的元素集减少为具有与选择器或DOM元素匹配的后代的元素集
所以,你需要做一些类似的事情:
if($(this).parent().has('p').length)
或者更好的是,您不需要向上遍历父对象以向下遍历。只要简单地做:
if($(this).siblings('p').length)
不返回布尔值。它返回一个jQuery对象。从文档中:
将匹配的元素集减少为具有与选择器或DOM元素匹配的后代的元素集
所以,你需要做一些类似的事情:
if($(this).parent().has('p').length)
或者更好的是,您不需要向上遍历父对象以向下遍历。只要简单地做:
if($(this).siblings('p').length)
$(这个)
不是你想象的那样。执行console.log
并查看$(这个)
实际上是什么。我到底需要在console中写什么?我不是javascript中的noob:)$(这个)
不是你想象的那样。执行console.log
并查看$(这个)
实际上是什么。我到底需要在console中写什么?我是javascript的noob:)我知道这一点,但我不打算用CSS类来做这件事。我知道这一点,但我不打算用CSS类来做这件事