切换链接href,具体取决于按钮附加到<table> </table>

时间:2012-11-06 01:50:40

标签: jquery html drop-down-menu twitter-bootstrap

感谢您抽出宝贵时间,

我正在处理管理员审核提交的目标的应用页面。每个目标是3个不同表格中的1个。 “审查”,“完成”和“提交”是三个表格。

每个都有一个bootstrap btn-group,它有一个批准,还原或拒绝的选项,具体取决于它当前的状态。当状态改变时,包含目标的内容将被删除并附加到正确的表格中。

您可以在此处查看功能示例: http://jsfiddle.net/9mYZD/

现在问题在于:

  • 当其中一个被移动到另一个表时,我需要它来切换下拉列表中的链接,以便它们与新表中的其他链接相匹配。
  • 我有代码来执行此操作,但我正在尝试编写一个可以正常工作的语句

    tableID = clicked.closest('table').attr('id');
    if(tableID = 'approve-objectives-submitted'){
                    clicked.html('<i class=" icon-undo"></i> Revert').removeClass('action-ok').addClass('action-revert');
                    }
                    else if(tableID = 'approve-objectives-review'){
                    clicked.html('<i class=" icon-ban-circle"></i> Deny').removeClass('action-ok').addClass('action-deny');
                    }
    

如果您查看提供的小提琴,我已将此代码添加到批准功能。如果你批准了一个提交,那么交换机工作得很好,如果你批准一个(它们被附加在列表的最底部),那么你可以看到两个还原按钮而不是一个拒绝和一个还原。

如果有人知道如何使这个条件语句有效。或者我可能只需退后一步,从另一个角度来看待这个问题。任何想法都会很棒。

谢谢!

2 个答案:

答案 0 :(得分:1)

if(tableID = 'approve-objectives-submitted')

您需要=== not = in condition

这就是我立即看到的

答案 1 :(得分:1)

我注意到了一些事情。

我更改了approve: function ()中的代码并竖起了一个新的小提琴http://jsfiddle.net/5aVCp/

首先,您新添加的表行正在丢失其目标ID,并且从表行获取HTML的方式是留下一个非常小的计时窗口,在获取HTML之前,该元素的可能性将从DOM中删除。

其次,当你替换最后一个div的内容时,btn-group类div正在消失。也许我错过了这部分正在做的事情。

最后,我根据其他行值修改标签的方法是使用您已经包含在锚标记上的属性,在将它们附加到新表并根据需要操作HTML之后简单地找到它们:

   var dataId = clicked.attr('data-id');
   var ok = $('a[data-id="' + dataId + '"].action-ok');
   var deny = $('a[data-id="' + dataId + '"].action-deny');
   deny.removeClass('action-deny').addClass('action-revert').html('<i class=" icon-undo"></i> Revert');
   ok.removeClass('action-ok').addClass('action-deny').html('<i class=" icon-ban-circle"></i> Deny');

您可以为其他每种类型的状态执行此操作,只需确保在更新任何类之前运行选择器,或者您可能会发现您更改了一个并重新选择它。

希望这有帮助。