【问题标题】:Change css of active accordion and parent tab in jquery-ui在 jquery-ui 中更改活动手风琴和父选项卡的 css
【发布时间】:2013-02-18 19:29:37
【问题描述】:

我对 jquery 有点陌生,所以对如何选择父选项卡或只是在当前手风琴上添加效果感到困惑。我在 php 条件下的脚本中编写的任何代码都不会对 .ui-widget-header 的 css 进行任何可见的更改,这很可能是因为我没有选择父元素本身。

让我给我的代码必要的sn-p

<div id="tabs">
<ul>
    <li><a href="#tabs-1">Tab 1</a></li>
    <li><a href="#tabs-2">Tab 2</a></li>
    <li><a href="#tabs-3">Tab 3</a></li>
</ul>
<div id="tabs-1">
    <div id="accordion">

       <div> Some content </div>
       <div> 
           <?php  
           //Perform some query
           if (mysqli_num_rows($query)==0)
           //Make background of current accordion, and parent tab red. Add jquery script here
           echo "<script type='text/javascript'> </script>";//No clue what should be within this script, hence blank...
//Probably something like  $("accordion").parent("#tabs").css( background-color: red;background-image: none;)
//OR $(this).parents('div#tabs').css( background-color: red;background-image: none;)
           ?> 
       </div>
       <div>
          2nd accordion. There should be no effect here. 
       </div>
   </div>
   .....

修改后的剪辑可在 - jsfiddle.net/buKLE/8 上找到...目前只有标签和手风琴。如果可能,尝试更改 tab1 的 css,假设手风琴第 2 节有错误。 是否甚至可以改变那只手风琴的颜色,因为所有的手风琴都在这里绑定在一起......

【问题讨论】:

  • 我在您的标签中看不到任何 javascript 代码?
  • 编辑:您能向我们展示您尝试过的一些代码吗?
  • 我不知道应该如何选择该父选项卡,然后更改它的 css 属性。很确定这都是错误的,但只是编辑了我认为的样子。
  • 不要害怕在您的问题中发布该代码,这对回答您的问题很有帮助。

标签: javascript jquery jquery-ui


【解决方案1】:

您非常接近,您的代码中有两个小错误。

你漏了井号,走错了遍历方式:

               ↓ only traverses one level up
$("accordion").parent("#tabs")

应该是:

   ↓ hash       ↓ traverses upwards, until the selector matches or top is reached
$("#accordion").parents("#tabs")

【讨论】:

  • 执行此操作时看不到任何可见的变化 $("#accordion").parent("#tabs").css( background-color: red;)....Don '我们不必在 jQuery UI 中添加和删除类吗?看看这个 - stackoverflow.com/questions/2020995/…
  • 这取决于你到底想做什么。如果您只想更改单个 css 声明(例如边框),则不需要使用类。能否请您准备一个fiddle 并准确说明您想要什么?
  • 我们开始 - jsfiddle.net/buKLE/8 ...目前只有制表符和手风琴。尝试更改仅 tab1 的 css,假设手风琴第 2 节有错误。
  • 看看this edit,如果它对你有帮助的话。如果您希望某个特定元素不被更改,只需使用adderror() 注释掉相应的行。单击内容以触发更改。我在这里使用了原生 jQuery UI 类ui-state-error。如有任何其他问题,请写评论。
  • 谢谢,但在进行了一些必要的更改后又卡住了。我认为 Tab1-Section 2 中有错误,所以只是在那里添加了脚本。只有外面的内容颜色变了。为什么标题的 CSS 没有改变? jsfiddle.net/buKLE/13
猜你喜欢
  • 2010-12-05
  • 1970-01-01
  • 2016-10-22
  • 1970-01-01
  • 2010-12-26
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
相关资源
最近更新 更多