我在用户点击它时为元素添加了一个类:
$('.service-blurb').click(function() {
$(this).addClass('scrolls');
});
现在我想在'滚动条中添加一个事件处理程序。 class,所以当用户再次点击它时会滚动。
$(document).on('click', '.scrolls', function() {
//scrolls nicely to that service description
});
问题: 我第一次点击' .service-blurb'元素,它不仅添加类,但它也滚动。我希望它仅在用户第二次点击时滚动。
答案 0 :(得分:4)
发生的事情是该事件冒泡到文档中,然后检查您是否单击了与.scroll
匹配的元素,因此它运行委派的处理程序。
更改第一个处理程序,以便停止事件冒泡。
$('.service-blurb').click(function(e) {
$(this).addClass('scrolls');
e.stopPropagation();
});
答案 1 :(得分:0)
看来你可能不想在第一次点击之前添加处理程序?
$('.service-blurb').click(function() {
$(this).addClass('scrolls');
$(this).off('click'); // Disable this handler now that we're done
$(document).on('click', '.scrolls', function() {
//scrolls nicely to that service description
});
});
答案 2 :(得分:0)
如果我理解正确,你需要event.preventDefault()。
$('.service-blurb').click(function(e) {
$(this).addClass('scrolls');
e.preventDefault;
});
了解更多...点击此处... https://api.jquery.com/event.preventdefault/