如何防止选项卡一次全部打开

时间:2014-10-01 作者:Tim

我被困在一个插件上,我正在写一个插件来显示和隐藏大文本中的内容。下面的html是使用文本编辑器中的短代码加载的。

<p>Completely synergize resource
  <a href="#" class="btn-context">   
    solutions.
  </a>
</p>

<p class="inside-context">
  Dynamically innovate resource-leveling
</p>
我的jQuery显然是用类打开所有段落的。内部上下文。但是一篇文章中可能有多个短代码,所以我只想显示单击的链接的内容。

 $(".btn-context").on(\'click\', function (event) {.
        if ($(\'.inside-context\').hasClass(\'open\')) {
            $(\'.inside-context\').removeClass(\'open\');
        } else {
            $(\'.inside-context\').addClass(\'open\');
        }

        event.preventDefault();
 });
我试过:

使用$(this),但这只适用于链接,这并不重要在尝试了很多之后,我想我可能会被迫添加更多属性以使其正常工作,所以我为两个短代码都添加了一个ID,并为每个添加的短代码增加ID的值。(只是因为我不想每次用短代码包装文本时都手动设置ID)

这可能行得通,但我仍然没有找到一种使用jQuery的方法。ID递增的我的短代码。

function context( $content=null ) {
  STATIC $id = 0;
  $id++;

  $content = preg_replace( \'/<br class="nc".\\/>/\', \'\', $content );
  $result = \'<p id="\'. $id .\'" class="inside-context">\';
  $result .= do_shortcode( $content );
  $result .= \'</p>\';

 return force_balance_tags( $result );
}
我应该如何处理这个问题?我不想让它在文本编辑器中使用得尽可能简单。

完整的东西在里面this JSfiddle.

1 个回复
最合适的回答,由SO网友:Apul Gupta 整理而成

正如您在评论中提到的,上下文内段落将位于单击的锚定的父级旁边,此代码将起作用:

 $(".btn-context").on(\'click\', function (event) {
        event.preventDefault();
        $(\'.inside-context\').removeClass(\'open\');
        $(this).parent().next(\'p.inside-context\').addClass(\'open\');

 });

结束

相关推荐

Loading jQuery UI in the head

我正在尝试在主题的头部加载jquery ui核心和jquery ui滑块。这是我的代码:function load_jquery_ui() { wp_enqueue_script( \'jquery-ui-slider\' ); } add_action( \'wp_enqueue_scripts\', \'load_jquery_ui\' ); jQuery UI加载到页脚中。但由于我有一些内联脚本(由于JS中的php实现),我需要在头部加载它。有人知