【问题标题】:jQuery custom toggle between divsjQuery 自定义 div 之间的切换
【发布时间】:2011-08-29 05:28:42
【问题描述】:

遇到一些麻烦无法理解为什么它不能正常工作。

http://host.philmadelphia2.com/~clare/order/

当您单击顶部的两个“订单...”链接时,它们应该在 div 之间切换。当一个页面处于活动状态时,单击该页面的按钮应该没有任何效果。只有在点击非活动页面的按钮时才会有一个动作。

这里是 JS 的链接。

http://host.philmadelphia2.com/~clare/wp-content/themes/theme/js/pager.js

我正在使用 jQuery 和 jQuery UI 来制作效果。

谢谢, 皮特

【问题讨论】:

  • 链接到 js 没有帮助.. 你能用导致问题的部分更新问题
  • 而且我建议只在 jsfiddle 上托管与您的问题相关的内容

标签: jquery jquery-ui toggle toggleclass


【解决方案1】:

我在jsfiddle 上拼凑了一个看起来可行的快速模型。为了便于阅读,我删除了很多标记。

我所做的唯一更改是删除函数声明中的 $ 符号并使用 live() 事件处理程序而不是 click()。

编辑:出于解释目的,由于您通过添加和删除类来操作 DOM,因此您必须使用 live() 事件处理程序。

【讨论】:

  • 您是否发现 UI 盲目效果在网站上不起作用的任何原因?再次感谢 live(),sn-p
  • 你不能同时使用 live() 和 toggle()。见here
【解决方案2】:

如果您继续单击“订购样品”,则会在所有 a.button 上来回切换非活动类。

您基本上要寻找的是一个 jQuery 选项卡脚本。在您的情况下,“标签”只是文本链接。我最近在一个带有文本标签的网站上使用了idTabs script,效果很好。

【讨论】:

    【解决方案3】:

    您的锚点选择器错误。在您的标记中,unactive 类仅应用于页面加载时的一个锚点,因此 a.unactive 将仅选择具有 unactive 类的锚点。您希望将click 事件附加到两个锚点,因此您应该使用应用于两个锚点的button 类。试试这个

        jQuery('a.unactive').live(function($){
            jQuery('a.button').toggleClass('unactive');
            jQuery('div.page').toggle('blind','',500);
            console.log('clicked');
        });
    

    【讨论】:

    • 如果我这样做,那么两个按钮都会触发功能,我只希望非活动按钮单击导致过渡