通过onClick on另一个元素暂停SuperSized.js

时间:2012-03-25 14:23:07

标签: supersized

我真的不“得到”jQuery - 我只使用JS来改变客户端的DOM属性 - 但是当一个工具适合你需要使用它时。 我在页面上运行了一个SuperSized幻灯片,我在底部的导航栏中添加了几个按钮。单击这些按钮时,我打开一个窗口,显示有关当前幻灯片的更多信息,但由于它是“当前”幻灯片,我需要在窗口打开时停止播放。一切都运转正常,除了停止这项业务。 我提到了api,并且有一个电话就是这样:

$(element).click(function(){
    api.playToggle();
});

...但是如何在onClick上调用另一个元素呢?我得到上面的代码为'element'添加了一个click事件处理程序,我只是不知道我是如何从普通的onClick =“”...我自己调用这个函数...

任何帮助非常感谢

丹尼

2 个答案:

答案 0 :(得分:0)

您需要将click事件附加到元素。

http://api.jquery.com/click/

我假设你的“按钮”是一个链接。

HTML:

<div id="btnContainer">
    <a id="slideInfo" href="#">More Info</a>
</div>

jQuery的:

$(function($) {
    $('#slideInfo').click(function() {
        api.playToggle();
    });
});

这是在做什么。首先,jQuery需要在页面加载完成后运行。这是通过以下方式完成的:

$(function($) {
    //Do this when page/DOM is done loading
});  

我们使用jQuery Selectors来选择id为slideInfo的元素。我们将click事件处理程序附加到元素。在click处理程序中,我们定义了单击元素后要执行的代码。在这种情况下,我们想要切换幻灯片的播放。调用api.PlayToggle();超大插件的功能就是这样做的。

要记住的一件事是,这将暂停您的幻灯片放映,以便您可以显示更多信息窗口。我不知道你是如何显示这个窗口的,但我建议使用一个对话框弹出窗口。一旦用户关闭此对话框弹出窗口,您需要再次以某种方式调用api.playToggle()函数以启动幻灯片备份。如果您需要更多帮助,只需回复更多信息。

我不确定你的第二个问题是什么。我想你想要一个在你点击激活api.playToggle()函数的按钮时调用的函数,但你也想在其他javascript / jquery代码中的其他地方调用这个函数或者将它附加到另一个元素。在这种情况下,您可以考虑将您的jquery更改为:

<script type="text/css">
    function ToggleSlideshow() {
        api.playToggle();
    }

    $(function($) {
        $('#slideInfo').click(function() {
            ToggleSlideshow();
        });
    });
</script>

我只是简单地创建了一个名为ToggleSlideshow()的函数,它将触发api.playToggle()函数。然后,当我附加我的单击处理函数时,我告诉它触发ToggleSlideshow()函数。如果你想将它附加到按钮的onClick属性或类似的东西,你所要做的就是:

onClick="javascript:ToggleSlideShow()"

我希望我已准确回答了你的问题。

答案 1 :(得分:0)

我正在使用您建议的代码:

<script type="text/javascript">


$(function($) {
    $('#slideInfo').click(function() {
        api.playToggle();
    });
});

</script>


<div id="btnContainer">
    <a id="slideInfo" href="#">More Info</a>
</div>

使用模态框暂停幻灯片放映。它完美无缺!

然而,当我关闭模态框时,我无法重新开始幻灯片放映。

我错过了一些额外的代码吗? (你写过以前的用户问你是否是这种情况。)

非常感谢!t