【问题标题】:jCarousel - buttonNextCallback is not called when there are no more items to loadjCarousel - 当没有更多要加载的项目时,不调用 buttonNextCallback
【发布时间】:2010-12-17 12:31:55
【问题描述】:

我的场景是最初只加载 7 个项目,当用户单击 “下一步” 按钮时,将进行数据库调用,我需要获取接下来的 7 个项目。

jCarousel 上显示的默认项目数设置为 7,最初我只加载 7 个项目。默认情况下,“Prev”“Next” 按钮都将被禁用,因为没有更多项目可以滚动。我以编程方式启用了 “下一步” 按钮,在浏览器中查看时它看起来已启用。但是当我点击“Next” 按钮时,相应的事件处理程序没有被触发。但是,如果我填充超过 7 个项目并单击 "Next" 按钮,则会调用事件处理程序。

function BindItems()
{
 $("#divItems").jcarousel({
   buttonNextCallback:MyNext,
   buttonPrevCallback:MyPrev});
}

function MyNext()
{
 alert("Next");
 // Planned to make a AJAX call to fetch next 7 items here
}

function MyPrev()
{
 alert("Prev");
 // Planned to make a AJAX call to fetch previous 7 items here
}

为什么会出现这种行为?我需要如何继续实现我的功能?

【问题讨论】:

    标签: javascript asp.net jquery events jcarousel


    【解决方案1】:

    我能想到的两个选项:

    1) 在下一个按钮上添加一个单独的点击事件,首先触发,加载内容然后触发插件回调。

    2) 加载 8 个项目开始。我不确定这是否会在我们的网站上引起问题,但如果您有第 8 项,那么您总是领先一步。

    在你的情况下这些都不可行吗?

    【讨论】:

    • 你能解释一下第一个选项吗?我没有找到任何可以帮助我加载内容的事件。唯一的希望似乎是 buttonNextCallback 和 buttonPrevCallback
    • 我查看了插件本身,它在启动时向 DOM 添加了相当多的信息。我觉得获得你想要的功能可能最终会是一个相当大的功能。你需要使用jCarousel吗?我怀疑使用已经具有此选项的 jQuery Cycle 可能会更容易:malsup.com/jquery/cycle/add.html。请注意,您可以使用此插件循环任何内容,因此您可以为每 7 个项目创建一个容器并循环通过容器。
    • 对不起!离开 jCaruousel 并不容易 :(
    猜你喜欢
    • 2021-08-25
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    相关资源
    最近更新 更多