1 个按钮上的 jQuery 多个功能

Posted

技术标签:

【中文标题】1 个按钮上的 jQuery 多个功能【英文标题】:jQuery Multiple Functions on 1 Button 【发布时间】:2013-03-02 00:42:06 【问题描述】:

所以我有一个按钮,我正在尝试使用多个功能。在页面加载时,上面的 div 被隐藏,一旦单击按钮,它将使 div 可见并滚动到顶部。我可以让两者分开工作,但不能一起工作。有人能指出我做错了什么吗?

$(function () 
    $("#work").hide();
    $(".button").bind("click", function () 
        $("#work").show();
    );
    $(".button").click(function () 
        $('html, body').animate(
            scrollTop: $("#work").offset().top
        , 2000);
    );
);

更新 1:

添加了一个小提琴:http://jsfiddle.net/5qQJN/1/

更新 2:

所以它设法工作,但只有在你点击一次之后。假设您单击它,跳到顶部,再次向下滚动单击,然后它会滚动动画.. 这是否意味着我需要加载窗口?

【问题讨论】:

【参考方案1】:
$(function () 
    $("#work").hide();
    $(".button").click(function () 
        $("#work").show();
        $('html, body').animate(
            scrollTop: $("#work").offset().top
        , 2000);
    );
);

组合它们应该可以工作,因为似乎没有动态加载。

【讨论】:

^ this -- 我想知道为什么两个点击处理程序是必需的,这可能是 OP 的示例代码过于简化了。 感谢您的回复和编辑。但是仍然没有骰子,当我单击按钮时,div 会出现,它会滚动到顶部,但没有动画,只是直接跳转。 你能用你的 HTML 更新你的问题吗,如果可能的话,用一个 jsFiddle 来说明问题。 所以它设法工作,但只有在你点击一次之后。假设您单击它,跳到顶部,再次向下滚动单击,然后它会滚动动画.. 这是否意味着我需要加载窗口?【参考方案2】:

我为你做了一个小提琴:http://jsfiddle.net/FaC4r/

看起来它在那里工作。不过,如果您提供了 HTML,它会有所帮助。

THE DIV IS HIDDEN UP HERE - SCROLL DOWN FOR BUTTON
<div id="work"></div>

<div id="spacer"></div>

<input type="button" class="button" value="CLICK ME TO SHOW 'WORK' AND SCROLL UP TO IT">

[根据评论更新]

我用你的新 HTML 为你编辑了 Fiddle:http://jsfiddle.net/FaC4r/2/

似乎您的 CSS 指定了一个填充为 0 的工作 div,再加上 div 中没有任何内容的事实,这意味着它是不可见的!您可以在上面的小提琴中看到,我在填充中使用 2em 以确保我实际上看到了 div 的增长和扩展。

我想说——这对于你编程生涯中的所有事情来说都是如此——使用工作示例作为基础,并逐步添加你的特定要求。尽早并经常测试。添加一件事并测试以确保它达到了您的预期。一旦你建立了一定的舒适度,你就可以扩展这个迭代周期。

希望对您有所帮助! :)

【讨论】:

感谢您的帮助.. 奇怪的是我觉得它应该可以工作,但由于某种原因它不是。如果你注意到任何让我知道的东西,我就扔了一个小提琴,我在代码方面还是相当新的。再次感谢。

以上是关于1 个按钮上的 jQuery 多个功能的主要内容,如果未能解决你的问题,请参考以下文章

用于jquery的html5视频上的iOS“完成”回调按钮

jQuery show() 和 hide() 用于页面上的多个链接

使用 jquery 中的每个循环的 Next 和 Prev 按钮功能

如何使用 Javascript、jQuery 对提交按钮应用多个操作?

JQuery做的登录按钮,其他网页如何调用?

同一功能上的多个“用户选项”参数