使用:not选择器
Use of the :not selector
我有一个不同版块的网站。我让jQuery在这些部分之间滑动。但现在我有一个链接在一个部分,指向另一个部分。
HTML:
<div class="section" id="one">
<div class="row">
<p>This is some text</p>
</div>
<div class="row">
<a href="#" onclick="scrollOrderNow()"><img src="button"/></a>
</div>
</div>
<div class="section" id="tow">
<div class="row">
<p>This is some text</p>
</div>
<div class="row">
<a href="#" onclick="scrollOrderNow()"><img src="button"/></a>
</div>
</div>
<div class="section" id="ordernow">
<div class="row">
<p>This is some text</p>
</div>
<div class="row">
<a href="#" onclick="scrollOrderNow()"><img src="button"/></a>
</div>
</div>
<div class="section" id="four">
<div class="row">
<p>This is some text</p>
</div>
<div class="row">
<a href="#" onclick="scrollOrderNow()"><img src="button"/></a>
</div>
</div>
jQuery:
// onclick on an object with class "section" scroll to this object
$('div.section').click(function() {
$.scrollTo($(this), 800);
});
function scrollOrderNow(){
$('html,body').animate({
scrollTop: $("#ordernow").offset().top
}, 1000);
}
问题是,如果我点击链接scrollOrderNow()
,页面会滑到订单页面,然后滑回该部分,因为链接在该部分中。
你能帮我弄清楚吗?
谢谢!
您可以使用单击处理程序,并根据在节内单击的元素来确定要做什么。为此,最好通过给可点击元素一个类来区分它:
<div class="section" id="four">
<div class="row">
<p>This is some text</p>
</div>
<div class="row">
<a href="#"><img src="button" class="scroll-to-order"/></a>
</div>
</div>
点击处理程序代码:
$('div.section').on('click', function(evt) {
var $target = $(evt.target);
if ($target.is('.scroll-to-order')) {
// the image itself was clicked, so scroll to ordernow
$('html,body').animate({
scrollTop: $("#ordernow").offset().top
}, 1000);
} else {
// something else inside the section was clicked, scroll to section
$.scrollTo($(this), 800);
}
});
您需要将return false
放入scrollOrderNow()
函数中。
function scrollOrderNow(){
$('html,body').animate({
scrollTop: $("#ordernow").offset().top
}, 1000);
return false;
}
这样,你的链接就不会做出反应,散列也不会被附加到URL上,留下页面所在的位置。
相关文章:
- :not选择器不适用于ul类-备选方案
- css:not选择器在section标记上的行为很奇怪
- jQuery.not()选择器无法与类一起工作
- 如何将getElementsByClassName与jQuery选择器一起使用:not()选择器
- Jquery选择器用于第一个'一、二、三和X'元素和:not()
- 在 jquery not 选择器中具有 2 个类的目标元素
- 如何在 dojo.on 事件名称的选择器中使用 :not
- 使用 :not 选择器与 .on() 结合使用
- jQuery选择器.not()不工作
- 可以't使用:not()选择器
- 什么是jQuery替代not(':not(选择器)')
- 为什么jQuery:not选择器属性没有'不适用于这种情况
- 如何使用:not()来针对具有特定父级的常规选择器
- 在函数的jquery中使用:not选择器
- 为什么JQuery NOT选择器在类型提交时失败,但在类型按钮上有效
- jQuery not选择器不工作
- jQuery:not选择器没有按预期工作
- not选择器可以和'this'一起使用吗?
- 为什么这个.not()选择器不工作?
- 如何在Cytoscape.js中使用:not选择器?(选择没有属性的节点)