jquery - Previous div won't de-highlight on clicking sibling div -


i developing web application have 8 div elements having same class , dynamically generated. want highlight particular div on click , de-highlight when click on div.so far, have tried following code block, not working. have researched , tries different tweaks @ current stage highlights in red divs click won't remove highlight previous one. code :

$(document).ready(function() {  $(".imagediv").on("click", (function(e) {     //alert("jquery hit !!");     $(".imgdiv").removeclass("imgdiv-selected");     $(this).addclass("imgdiv-selected");     //$(this).addclass(".imagediv-selected").siblings().removeclass(".imagediv-selected");     $(".imgdiv-selected").css("border-color","red");   })); }); 

please give valuable insights sounds simple taking me lot of time.

edit : divs created follows. there no html such :

images.foreach(function callback() {      var elem1 = document.createelement("div");     elem1.setattribute("class", "imagediv");    // elem1.onclick = clicked;     document.getelementbyid("images").appendchild(elem1);     var img1 = document.createelement("img");     img1.setattribute("class", "image");     img1.src =images[cnt++];    document.getelementbyid("images").appendchild(elem1);     elem1.appendchild(img1);   }); 

regards,

if elements generated dynamically, need delegate events:

// shorthand $(document).ready $(function() {     // delegated .on() syntax     $(document).on("click", ".imagediv", (function(e) {         // if know you'll ever have 1 image selected         // @ given time, class , remove         // rather looping through images.         $(".imgdiv-selected").removeclass("imgdiv-selected");         $(this).addclass("imgdiv-selected");         $(".imgdiv-selected").css("border-color","red");     }); }); 

this attaches event handler parent element. when click event bubbles , identified jquery having originated .imagediv, handler fire.

note: delegating @ document level extremely inefficient. it's best delegate @ closest containing parent exists on initial page load.

reference: .on()

edit:

as test case changing $('.imagediv').removeclass('imgdiv-selected'); $('.imgdiv-selected').removeclass('imgdiv-selected'); here jsperf.com test showing resulting difference.


Comments

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -