2010-09-05 4 views
7
$(document).ready(function() {  
    $('a#fav').bind('click', function() { 
     addFav(<?php echo $showUP["uID"]; ?>); 
    }); 
}); 

Мне нужно изменить это так, если A # любимчик имеет класс = «активный», то он должен сделатьjQuery: if class = active?

removeFav(<?php echo $showUP["uID"]; ?>); 

вместо Как я могу это сделать?

ответ

21

Вы хотите использовать функцию hasClass

$(document).ready(function() {  
    $('a#fav').bind('click', function() { 
     if($(this).hasClass('active')) { 
      removeFav(<?php echo $showUP["uID"]; ?>); 
     } 
     else { 
      addFav(<?php echo $showUP["uID"]; ?>); 
     } 
    }); 
}); 

EDIT: И просто для удовольствия, еще один способ, чтобы написать ее в более сжатом формате

$(function() {  
    $('a#fav').bind('click', function() { 
     var uID = <?php echo $showUP["uID"]; ?>; 
     ($(this).hasClass('active') ? removeFav : addFav)(uID); 
    }); 
}); 
+1

+ 1 Мне нравится твоя последняя версия. Просто заметил, что у вас это есть, поэтому я удалил свою. Хотя вы можете сделать его одной строкой, если вы избавитесь от переменной 'uID'. : o) – user113716

1
$(document).ready(function() {  
    $('a#fav').bind('click', function() { 
     if ($(this).hasClass('active')) 
      removeFav(<?php echo $showUP["uID"]; ?>); 
     else 
      addFav(<?php echo $showUP["uID"]; ?>); 
    }); 
}); 
0
$(function() {  
    $('a#fav').click(function() { 
    return ($(this).hasClass('active')) 
     ? removeFav('<?php echo $showUP["uID"]; ?>') 
     : addFav('<?php echo $showUP["uID"]; ?>'); 
    }); 
}); 
+0

Пожалуйста, внимательно ознакомьтесь с вопросом «как форматировать код» на meta.stackoverflow.com: http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code -блоков –