найти нужную ссылку / find()
Здравствуйте.
Подскажите, мне нужно найти ссылку в которой в id есть "build-" и class="active" и после этого получить полный id найденной ссылки $("a[id*='build-']").find("active")искать наверно можно так, но =)) как получить полный id найденной ссылки? =) спасибо |
var id = $('a[id^="build-"].active').attr("id"); |
спасибо =)
|
ммм.. на странице есть несколько групп ссылок с id="build-номера" с id="type-номера" и т.д.
есть функция, в которую хочу добавить возможность определять при нажатии на какую ссылку и из какой группы вызвана эта функция, например для того, чтоб только в этой группе поменять класс 'active' (удалить, добавить) для какой-нибудь ссылки если сделать так: $('a.active').removeClass('active'); $(this).toggleClass('active'); то меняются конечно все ссылки на странице с классом 'active', но хотелось бы менять только в одной из групп, в той, откуда вызвана эта функция Спасибо |
покажите пример HTML-кода
|
Вот кусок HTML-кода (генерится из php)
<div id="bld_list_panel" class="scrollable"> <ul class="items"> <li><a id="build-1" class="navi" href="#1">Item1</a></li> <li><a id="build-3" class="navi" href="#3">Item3</a></li> <li><a id="build-0" class="navi active" href="#0">Item0</a></li> </ul> </div> <div id="dev_list_panel" class="scrollable"> <ul class="items"> <li><a id="dev-1" class="navi" href="#1">Item1</a></li> <li><a id="dev-3" class="navi" href="#3">Item3</a></li> <li><a id="dev-0" class="navi active" href="#0">Item0</a></li> </ul> </div> <div id="type_list_panel" class="scrollable"> <ul class="items"> <li><a id="type-1" class="navi" href="#1">Item1</a></li> <li><a id="type-3" class="navi" href="#3">Item3</a></li> <li><a id="type-0" class="navi active" href="#0">Item0</a></li> </ul> </div> Вот функция: // это эвент по клику на одной из ссылок группы build $("a[id*='build-']").live('click',listDev); // это эвент по клику на одной из ссылок группы type $("a[id*='type-']").live('click',listDev); function listDev() { if(!load_in_process) { // Хотелось бы менять "active" (добавить/удалить) только в одной из групп, в той, откуда вызвана функция listDev $('a.active').removeClass('active'); $(this).toggleClass('active'); load_in_process = true; $.ajax( { type: "POST", url: "/../lib/sw_ajax_lib.php", data: ({func :"listDev",build: $('a[id^="build-"].active').attr("id"), type: $('a[id^="type-"].active').attr("id"), change:1}), dataType: "html", success:function (result) { var api = $("#dev_list_panel").scrollable(); api.getItems().remove(); api.getItemWrap().append(result); api.reload().begin();} }); Cпасибо |
Пока решил проблему таким образом:
Заменил строку: $('a.active').removeClass('active'); на $(this).parent().parent().parent().find('a.active').removeClass('active'); но по моему - коряво очень =( |
<ul class="items"> <li><a class="navi" href="#0">Item0</a></li> <li><a class="navi" href="#1">Item1</a></li> <li><a class="navi active" href="#2">Item2</a></li> </ul> <ul class="items"> <li><a class="navi" href="#0">Item0</a></li> <li><a class="navi" href="#1">Item1</a></li> <li><a class="navi active" href="#2">Item2</a></li> </ul> <ul class="items"> <li><a class="navi" href="#0">Item0</a></li> <li><a class="navi" href="#1">Item1</a></li> <li><a class="navi active" href="#2">Item2</a></li> </ul> <script type="text/javascript"> $(".items").click(function (e) { var target = $(e.target); if (target.hasClass("navi") && !target.hasClass("active")) { $(this).find(".active").removeClass("active"); target.addClass("active"); e.preventDefault(); } }); </script> |
еех... Все просто.. :(
Спасибо! |
Часовой пояс GMT +3, время: 05:45. |