JSFiddle - React, Tailwind, and code Playground
HTML
<ul id="vps">
<li class="active" >
<div class="status">running</div>
<div class="sub">
<div class="activity">
<a href="#" id="100" class="activevps"><img src="http://upload.wikimedia.org/wikipedia/commons/5/5a/Icons-mini-action_stop.gif" /></a>
</div>
</div>
</li>
<li class="active" >
<div class="status">running</div>
<div class="sub">
<div class="activity">
<a href="#" id="100" class="activevps"><img src="http://upload.wikimedia.org/wikipedia/commons/5/5a/Icons-mini-action_stop.gif" /></a>
</div>
</div>
</li>
<li class="active" >
<div class="status">running</div>
<div class="sub">
<div class="activity">
<a href="#" id="100" class="activevps"><img src="http://upload.wikimedia.org/wikipedia/commons/5/5a/Icons-mini-action_stop.gif" /></a>
</div>
</div>
</li>
</ul>
CSS
.active {
background: blue;
}
.inactive {
background: red;
}
JavaScript
$(document).ready(function() {
$('.activevps').click(function(e){
var target = $(this).attr('id');
var source = $(this);
var tt = new Date().getTime();
$.ajax({
type: "POST",
url: '/ajax_json_echo/?q=' + tt,
data: 'vps='+target,
dataType: "html",
timeout: (60 * 1000),
context: $(this), //set the context so the callback function knows where to do work
// the context will be the clicked <a> element
success: function(data) {
alert(data);
//set the parent li to inactive
var parentListItem = $(this).parents("li"),
statusDiv = $(this).parents("li").find("div.status");
if (parentListItem.hasClass("active")) {
parentListItem.removeClass("active").addClass("inactive");
statusDiv.text("halted");
$(this).find("img").attr("src", "http://upload.wikimedia.org/wikipedia/commons/d/de/Icons-mini-action_go.gif");
} else {
parentListItem.removeClass("inactive").addClass("active");
statusDiv.text("running");
$(this).find("img").attr("src", "http://upload.wikimedia.org/wikipedia/commons/5/5a/Icons-mini-action_stop.gif");
}
},
error: function(objAJAXRequest, strError){alert(strError);
}
});
});
});