Я пытаюсь открыть аккордеон, используя внешнюю ссылку .. На самом деле на странице есть три основных аккордеона (о, результаты, контакт)
и есть меню с элементами (о, результаты, контакт).
что я хочу, когда я нажимаю на пункт меню, он должен открыть около аккордеона
ниже приведен код jquery
$(function() { $( "#accordion" ).accordion({ collapsible: true, autoHeight: false , active: false, navigation:true, }); $(".exlnk").click(function(event){ window.location.hash=this.hash; }); });
Ниже представлен код строки html:
<div id="navmenu" style='z-index:9999;'> <ul> <li><a href="#anchor_about" class="anchor_about">About</a></li> <li><a href="#" >Results</a></li> <li><a href="#" class ="anchor_contact">Contact</a></li> </ul> </div>
и ниже – код jquery для внешней ссылки
<script> $(document).ready(function(){ $('a.anchor_about').click(function(){ $("#accordion").accordion("activate", '<?php echo $_GET['id']; ?>'); return false; }); }); </script>
но его не работает .. 🙁
кто-нибудь знает об этом? заранее спасибо
EDIT1
<script> $("#navmenu ul").children("li").click(function() { $("#accordion").accordion("activate", <?php echo (int)$_GET['id']; ?>); });
EDIT2
Ниже приведен код аккордеона
<div class="demo"> <div id="accordion"> <!--- main accordion 1 demo--> <h3><a href="#anchor_home"></a></h3> <div id="accordion1" style="margin-bottom:17px;" > <h1><a href="#" ></a></h1> <div id="content_our_offer" > <!--- sub accordion 1 demo--> <?php $page_id=1742;?> <?php get_page( $page_id ) ; $page_data = get_page( $page_id ); echo '<h3>'. $page_data->post_title .'</h3>';// echo the title echo apply_filters('the_content', $page_data->post_content); ?> </div> <div style="margin-top:20px;"> <!--- sub accordion 2 demo--> <h2 ><a href="#" ></a></h2> </div> <div id="content_our_offer" > <?php $page_id=1742;?> <?php get_page( $page_id ) ; $page_data = get_page( $page_id ); echo '<h3>'. $page_data->post_title .'</h3>';// echo the title echo apply_filters('the_content', $page_data->post_content); ?> </div> </div> <div style="margin-top:20px;"> <h6><a class="exlnk" href="#about" title="About" ></a></h6> </div> <!--- main accordion 2 demo--> <div id="id_ourresults"> <?php $directory = 'our_results'; try { // Styling for images foreach ( new DirectoryIterator("../" . $directory) as $item ) { if ($item->isFile()) { echo "<div class=\"expand_image\">"; $path = "/" . $directory . "/" . $item; echo "<img src=\"" . $path . "\" width=861 height=443 />"; echo "</div>"; } } } catch(Exception $e) { echo 'No images found for this player.<br />'; } ?> </div> <div style="margin-top:20px;"> <h4><a href="#anchor_contact"></a></h4> </div> <!--- main accordion 3 demo--> <div id="id_contactus"> <?php $page_id=1791 ;?> <?php get_page( $page_id ) ; $page_data = get_page( $page_id ); echo '<h3>'. $page_data->post_title .'</h3>';// echo the title echo apply_filters('the_content', $page_data->post_content); ?> </div> </div> </div><!-- End demo -->
$('a.anchor_about').click(function(){ $("#accordion").accordion("activate", '<?php echo $_GET['id']; ?>'); return false; });
Я не думаю, что $ _GET ['id'] в линии активации аккордеона будет работать, поскольку, я думаю, вы хотите что-то вроде этого
$('a.anchor_about').click(function(){ var sectionId = $(this).attr("href"); $("#accordion").accordion("activate", sectionId); return false; });
проверьте, работает ли это – если есть какие-либо ошибки, дайте мне знать.
РЕДАКТИРОВАТЬ **
Кроме того, я думаю, что для открытия аккордеона вам нужно значение на основе index
не значение ID
например #someId
(что работает для вкладки точно). Индекс основан на нуле, так что первая часть аккордеона может быть активирована путем передачи нулевого значения, второго с 1 и т. Д.
Дайте элементам меню имя в соответствии с индексом
<div id="navmenu" style='z-index:9999;'> <ul> <li><a href="#" name="0">About</a></li> <li><a href="#" name="1">Results</a></li> <li><a href="#" name="2">Contact</a></li> </ul> </div>
затем активируйте соответствующий аккордеон с индексом, указанным в пунктах меню:
$("#navmenu ul").children("li").click(function() { $("#accordion").accordion("activate", $(this).attr("name")); // ALSO POSSIBLE (name attribute not needed): // Only if the menu items are in the same order as the accordion items $("#accordion").accordion("activate", $(this).index()); });
Я просто вычислил, что ваш код находится в другом файле, поэтому здесь есть возможность минимизировать изменение вашего кода. Видя, как вы отправляете хэш и получаете идентификатор на новой странице. Для аккордеона требуется индексный номер , а не идентификатор: Аккордеонные методы
<div id="navmenu" style='z-index:9999;'> <ul> <li><a href="#0">About</a></li> <li><a href="#1">Results</a></li> <li><a href="#2">Contact</a></li> </ul> </div>
$('#accordion').accordion({"active": $(window.location.hash).index()});