Событие onclick выполняется на первом элементе
Здравствуйте!
Мне необходимо сделать алфавитный указатель, т.е. чтобы при клике на какую-то букву алфавита, выводились соответствующие этой букве категории. Помогите разобраться пожалуйста, почему функция onclick срабатывает только на первом элементе? <?php $l1 = ''; $args = array( 'type' => 'post' ,'orderby' => 'name' ,'hide_empty' => 0 ,'child_of' =>6 ,'order' => 'ASC' ); $categories = get_categories( $args ); foreach($categories as $category) { $l2 = mb_substr($category->name, 0, 1, 'utf-8'); if ($l1 != $l2) { $l1 = $l2; //echo($l2); echo '<div class="test1" onclick="ima('.$l1.')"><a href="#">' . $l1 . '</a>'; } echo '<div title="'.$l1.'" class="test2" style="display:none"><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></div></div>'; } ?> function ima(litera){ exit=litera; jQuery("[title =" + exit + "]").fadeIn(500); } |
Я так понял, здесь при onclick надо передавать this. А как в таком случае с this передать содержание переменной $l1 ?
|
Оказалось всё проще, чем я думал.
Получилось сделать так: <?php $l1 = ''; $args = array( 'type' => 'post' ,'orderby' => 'name' ,'hide_empty' => 0 ,'child_of' =>6 ,'order' => 'ASC' ); $categories = get_categories( $args ); foreach($categories as $category) { $l2 = mb_substr($category->name, 0, 1, 'utf-8'); if ($l1 != $l2) { $l1 = $l2; //echo($l2); echo '<div class="test1" title="'.$l1.'" onclick="ima(this)"><a href="#">' . $l1 . '</a></div>'; } echo '<div title="'.$l1.'" class="test2" style="display:none"><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></div>'; } ?> function ima(litera){ var litera = $(litera).attr('title'); jQuery("[title='"+ litera +"']").fadeIn(500); } |
Часовой пояс GMT +3, время: 07:17. |