2013-02-26 3 views
0

Добрый день.Проверьте, выбран ли ID с помощью jQuery

Я использую следующую функцию щелчка с JQuery

$(function() { 

      $("#areas ul a").click(function (event) { 
       event.preventDefault(); 
       $("#areas ul li a").removeClass('activeAreas'); 
       $(this).addClass('activeAreas'); 
       $(".hidden").hide(200); 
       $($(this).attr("href")).show(500) 

      }); 

     }); 

Что я хотел бы сделать это в этом цикле, чтобы проверить, активна ли конкретный элемент, а затем действовать на том, что:

Например.

$("#areas ul a").click(function (event) { 
       event.preventDefault(); 
       $("#areas ul li a").removeClass('activeAreas'); 
       $(this).addClass('activeAreas'); 
       $(".hidden").hide(200); 
       $($(this).attr("href")).show(500) 

       //I'm adding this... but it is not working 

       if($(this).attr(href) = 'pretoriaDetail'){ 
        alert('it works'); 
       } 

      }); 

Как это получить, если инструкция для работы ...?

Благодаря

+0

что вы имеете в виду активный? – dakait

+5

Я предполагаю, что '=' в вашем примере - опечатка. Это должно быть '=='. И href в условии if должен быть «href». Код работает для меня в этой скрипте: http://jsfiddle.net/Qr5nL/ – ryadavilli

+0

'if ($ .trim ($ (this) .attr (href)) == '#pretoriaDetail') alert ('ok') ; ' – adeneo

ответ

2

Если вы хотите проверить, если class применяется к DOM, то .hasClass поможет.

Официальный документ: http://api.jquery.com/hasClass/

и еще одна вещь есть ошибка в вашем коде.

if($(this).attr(href) = 'pretoriaDetail'){ 
      alert('it works'); 
} 

должен быть

if($(this).attr("href") == 'pretoriaDetail'){ 
      alert('it works'); 
} 

потому что = сделать, назначая значение, что в то время как == сравнить его и HREF должны окружать в котировке.

+1

Не только' = 'в вашем коде' href' также должны быть в кавычках следующим образом: '$ (this) .attr ('href')' – Jai

+0

@Jai эй, я уже определил его в ответ ... посмотри ... –

+1

yup my bad только что видел. – Jai

0

Я думаю, вы должны попробовать это:

var ID = $(this).attr("href"); 

$('#'+ID).show(500); 

Declare a variable and use it as an id.

Тогда это должно быть что-то вроде этого:

 $(function() { 
     $("#areas ul a").click(function (event) { 
      var ID = $(this).attr("href"); 
      event.preventDefault(); 
      $("#areas ul li a").removeClass('activeAreas'); 
      $(this).addClass('activeAreas'); 
      $(".hidden").hide(200); 
      $('#'+ID).show(500); // or this way $('[id="'+ID+'"]').show(500); 
     }); 
    }); 
1
$(function() { 
     $("#areas ul a").click(function (event) { 
      event.preventDefault(); 
      if(!$(this).hasClass('activeAreas')){ 
       $("#areas ul li a").removeClass('activeAreas'); 
       $(this).addClass('activeAreas'); 
       $(".hidden").hide(200); 
       $($(this).attr("href")).show(500); 
      } 
     }); 

    }); 
Смежные вопросы