2016-10-25 19 views
0

Ich versuche, eine Schaltfläche durch eine Liste eine Linie zu erstellen, aber wenn Sie es erneut klicken, wird es den Zeilenumbruch rückgängig machen. Ich habe ein .toggle() versucht, aber es hat nicht funktioniert:Klicken Sie auf die Schaltfläche macht etwas, dann klicken Sie auf die gleiche Schaltfläche rückgängig machen

Original-Code:

$("div").on("click", ".doneButt", function(e) { 
    e.preventDefault(); 
    $(this).parents("li").css("text-decoration", "line-through"); 
}); 

.toggle Versuch:

$(".doneButt").toggle(function() { 
    $(this).parents("li").css("text-decoration", "line-through"); 
}, function() { 
    $(this).parents("li").css("text-decoration", "none"); 
}); 
+3

Sie können Klasse mit diesem Stil hinzufügen oder entfernen. Verwenden Sie '.toggleClass()' – guradio

+1

Die ['.toggle()' Ereignismethode] (http://api.jquery.com/toggle-event/) wurde in jQuery v1.9 * entfernt. Verwenden Sie stattdessen einen '.click()' - Handler und eine Klasse mit '.toggleClass()' oder eine 'if/else'-Anweisung. – nnnnnn

Antwort

5

$(".doneButt").click(function() { 
 
    $(this).parents("li").toggleClass('withline'); 
 
});
.withline { 
 
    text-decoration: line-through 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<ul> 
 
    <li>asdasdasda 
 
    <input type='button' class='doneButt' value='Click' /> 
 
    </li> 
 
</ul>

  1. Mit .toggleClass()
+1

das ist eine perfekte Antwort –

+0

vielen Dank. – OrangePineapple

+0

@OrangePineapple froh, Mate zu helfen – guradio

0
$(".doneButt").on("click",function() { 
     var style = $(this).attr("style")+""; 
     if(style=="undefined") 
      $(this).parents("li").css("text-decoration", "line-through"); 
     else 
      $(this).parents("li").removeAttr("style"); 
     }); 
+1

Das Entfernen des 'style' könnte unerwünschte Effekte haben. – nnnnnn

+0

egal, dass Sie Stil hinzufügen und entfernen, ich meine undo bedeutet, dass Sie das Stilattribut entfernen – Araz

+0

Was ist, wenn das Element andere Stileigenschaften hat, die nichts mit 'text-decoration' zu tun haben? Dieser Code wird diese Eigenschaften auch entfernen. – nnnnnn

Verwandte Themen