Javascript 元素在单击时消失
我正试图用Jquery做一些事情,但似乎有些地方出了问题 首先是一些代码 我的HTMLJavascript 元素在单击时消失,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正试图用Jquery做一些事情,但似乎有些地方出了问题 首先是一些代码 我的HTML <a href="#" onclick="return false;" class="scrollToTop"></a> 我的Jquery $(document).ready(function() { var hidden = $('.scrollToTop'); hidden.hide(); // Check to see if the window is
<a href="#" onclick="return false;" class="scrollToTop"></a>
我的Jquery
$(document).ready(function() {
var hidden = $('.scrollToTop');
hidden.hide();
// Check to see if the window is top if not then display button
$(window).scroll(function() {
if ($(this).scrollTop() > 100) {
hidden.show(1000);
} else {
hidden.hide(1000);
}
});
// Click event to scroll to top
$('.scrollToTop').click(function(e) {
$('html, body').animate({
scrollTop: 0
}, 800);
return false;
});
});
谢谢你,瓦西里尼库索
问题是,我的项目中的所有按钮在被单击后都会消失。我可以看到我的浏览器放在他们周围的戒指,但是fysical按钮消失了。。
这个问题似乎不会发生在小提琴中,因为代码在小提琴中根本不起作用
有人知道我该如何解决这个问题吗?梅比,问题出在哪里?我猜Jquery代码中的某些东西使得按钮能够做到这一点。大约有8个Jquery文件,包含100多行代码,其中大多数是库的
下面的代码不起作用。我试过了
(function(e)
{
e.preventDefault;
});
提前谢谢
谢谢你的回答!
但我的代码中似乎存在的问题是,当链接中有a href时,似乎有一些库导致了这种不相似的效果。删除href暂时解决了我的问题。您可以只使用href=javascript:void0而不是href=onclick=return false
拥有或其他任何包含onclick属性的东西——几年前还可以,但现在这可能是一种不好的做法。原因如下:
它促进了突兀的Javascript实践——事实证明,Javascript很难维护,也很难扩展。更多关于这方面的信息,请访问
现在有更好、更容易、更易于维护和可扩展的方法来实现预期的结果
低调的Javascript方式
只是根本没有href属性!任何好的CSS重置都会处理缺少的默认光标样式,所以这不是问题。然后,如果您有一个Javascript功能要使用优雅而不引人注目的最佳实践来附加,那么当您开始开发大规模Javascript应用程序时,这是非常重要的,因为Javascript逻辑保留在Javascript中而不是标记中时,这些最佳实践更易于维护
<a class="scrollToTop">Cancel this action</a>
// Cancel click event
$('.scrollToTop').click(function(){
alert('Cancel action occurs!');
});
.scrollToTop { cursor: pointer; color: blue; }
.scrollToTop:hover { text-decoration: underline; }
查看这里的JSFIDLE示例:我可以请您发布一个按钮的提琴,这样我们就可以看到发生了什么?现在我所能看到的是右下角的一个点,当点击时它什么都不做。另外,您使用的浏览器是什么?在您的小提琴中,您需要在左上角的下拉列表“框架和库”中选择jQuery,您的示例似乎可以正常工作。但是你的问题的答案是,当你滚动到顶部时,我认为是滚动到顶部按钮的按钮将被隐藏,因为这就是你的代码所做的——如果滚动到页面顶部的距离小于100px,那么按钮将被隐藏。我已经更新了你的JSFIDLE示例,添加了jquery扩展和所有的LOK干得好。你能给我们一个详细的页面吗?我找不到问题,谢谢你的更新,但是用slow代替800似乎不起作用。页面将在大约100毫秒内向上滚动,而不是在800毫秒左右。相关部分没有将800变为慢速,如果您需要,您可以将其保持这样。相关部分正在从.ClickFunction中删除e事件,该函数只是停留在那里,没有必要。。。我认为用a href标签替换a或a应该可以解决这个问题。我同意这一点。谢谢你的提示!我想知道为什么人们总是认为最好不要让javascript出现在标记中。我觉得声明性html语法更容易理解和维护,而不是梳理javascript文件
<a href="javascript:void(0)" class="scrollToTop"></a>
<!-- OR better -->
<a class="scrollToTop"></a>
<!-- OR even better -->
<span class="scrollToTop"></span>
.scrollToTop { cursor: pointer; color: blue; }
<a class="scrollToTop">Cancel this action</a>
// Cancel click event
$('.scrollToTop').click(function(){
alert('Cancel action occurs!');
});
.scrollToTop { cursor: pointer; color: blue; }
.scrollToTop:hover { text-decoration: underline; }
// Click to scroll to top
$(".scrollToTop").click(function() {
$("html, body").animate({ scrollTop: 0 }, "slow");
});