Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 元素在单击时消失_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 元素在单击时消失

Javascript 元素在单击时消失,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

我正试图用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 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");
});