2013-09-19 2 views
0

Этот код для изменения атрибута param не работает. Пожалуйста, скажи мне почему?Атрибут не изменяется при нажатии

$("#button").on("click",function(){ 
    if($(this).attr("param") == "Off"){ 
     $(this).attr("param","Play"); 
    } 
    if($(this).attr("param") == "Play"){ 
     $(this).attr("param","Off"); 
    } 
}); 

Example on JsFiddle

+2

Параметр FYI не является допустимым атрибутом для тега DIV, вы должны использовать в атрибуте атрибута HTML5-param –

ответ

2

Ваш код изменяет его один раз, а затем изменяет его обратно. Вы должны использовать инструкцию else. Попробуйте:

$("#button").on("click",function(){ 

if($(this).attr("param") == "Off"){ 
    $(this).attr("param","Play"); 
} else if($(this).attr("param") == "Play"){ 
    $(this).attr("param","Off"); 
} 

}); 
+0

о, спасибо, я его не вижу ... я принимаю ответ после 10 минут, +1. –

0

@nullability ответ правильный, но я предпочитаю использовать switch вместо:

$("#button").on("click",function(){ 
    switch($(this).attr("param")) { 
     case "Off": 
      $(this).attr("param","Play"); 
      break; 
     case "Play": 
      $(this).attr("param","Off"); 
      break; 
    } 
}); 

working demo

0

хотя я немного поздно, но как полное руководство вы можете попробовать это

<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script> 
<script> 
$(document).ready(function(){ 
$("#but").on("click",function(){ 

if($(this).attr("param") == "Off"){ 
$(this).attr("param","Play"); 
}else if($(this).attr("param") == "Play"){ 
$(this).attr("param","Off"); 
} 

}); 
}); 
</script> 
<input type="button" id="but" param="Off" value="go" /> 

вопрос был «если есть», как указано с помощью nullability a Бова. ваш код менял его в первый раз, но затем в следующий момент он менял его.

+0

спасибо, хороший код. +1) –

Смежные вопросы