javascript - $(this).toggleClass not working -


so i'm busy creating mini webshop, , i'm using google's front-end (mdl) template

what wanted in webshop is, when user clicks on x product want toggle class,

i'm using closures inside loops detect clicks on product.

my issue is, class won't toggle. tried using addclass work not convenient because want toggle class (from selected product not selected)

checkout snippet & understand, see detect clicks properly. toggling classes doesn't work.

$(document).ready(function() {  	console.log("document ready");    (var = 1; < $(".products").length; i++) {  		(function(index){  		$(".products").click(  			function(e){  			console.log("click successfull!");  	        console.log(this);  	         $(this).css("border", "1px solid #1976d2");  	           	         $(this).toggleclass("mdl-shadow--16dp");  	    	});  		})(i);  	}    	$("#card").keyup(function(event){  	        if(event.keycode == 84){  	        console.log("class toggled!");  	        $(".products").toggleclass("mdl-shadow--2dp mdl-shadow--16dp");  	        }  	    });        });
.mdl-card__actions{    display: flex;    box-sizing:border-box;     align-items: center;  }  .page-content .mdl-card {  	display: inline-block;  	margin: 5px 5px 5px 5px;	  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  <link rel="stylesheet" href="https://storage.googleapis.com/code.getmdl.io/1.0.2/material.indigo-pink.min.css">      <script src="https://storage.googleapis.com/code.getmdl.io/1.0.2/material.min.js"></script>      <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=material+icons">      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  <body>    	<div class="page-content">  							<!-- content goes here -->  							<div class="mdl-card mdl-shadow--2dp products">  								<div class="mdl-card__title">  									<h2 class="mdl-card__title-text">dell xp13 </h2>  								</div>  								<img src="https://goo.gl/gddh0i" alt="dell xp13">  								<div class="mdl-card__supporting-text"><b>basisprijs: 1.649,00$<b></div>  								<div class="mdl-card__actions mdl-card--border">  									<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">  										add cart  									</a>  									<div class="mdl-layout-spacer"></div>  									<i class="material-icons">add_shopping_cart</i>  								</div>  							</div>		  							<div class="mdl-card mdl-shadow--2dp products">  							<div class="mdl-card__title">  								<h2 class="mdl-card__title-text">chromebook pixel2</h2>  							</div>  							<img src="https://goo.gl/pnie9c.png" alt="chrombook">  							<div class="mdl-card__supporting-text"><b>basisprijs: 999,99$<b></div>  							<div class="mdl-card__actions mdl-card--border">  								<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">  									add cart  								</a>  								<div class="mdl-layout-spacer"></div>  									<i class="material-icons">add_shopping_cart</i>  							</div>  						</div>  						<div class="mdl-card mdl-shadow--2dp products">  							<div class="mdl-card__title">  								<h2 class="mdl-card__title-text">macbook 13'</h2>  							</div>  							<img src="https://goo.gl/qzq0cr" alt="macbook">  							<div class="mdl-card__supporting-text"><b>basisprijs: 1.129,00$<b></div>  							<div class="mdl-card__actioder">  								<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">  									add cart  								</a>  								<div class="mdl-layout-spacer"></div>  									<i class="material-icons">add_shopping_cart</i>  							</div>  						</div>  					</div>    </body>

i show effect i'm toggling in separate link, in link i'm toggling effect "divs" won't per click.

i'm not sure need loop here, in opionion reason why wasn't working. i've set snippet without loop, toggleclass() works well, i've added .border class css, it's easier handle this. further, i've combined both toggleclass() in 1 line, it's optical thing.

check out snippet

$(document).ready(function() {    console.log("document ready");    $(".products").click(function() {      console.log("click successfull!");      console.log(this);      $(this).toggleclass("border").toggleclass("mdl-shadow--16dp");      });      $("#card").keyup(function(event) {      if (event.keycode == 84) {        console.log("class toggled!");        $(".products").toggleclass("mdl-shadow--2dp mdl-shadow--16dp");      }    });  });
.mdl-card__actions {    display: flex;    box-sizing: border-box;    align-items: center;  }  .page-content .mdl-card {    display: inline-block;    margin: 5px 5px 5px 5px;  }  .border {    border: 1px solid #1976d2;  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>  <link rel="stylesheet" href="https://storage.googleapis.com/code.getmdl.io/1.0.2/material.indigo-pink.min.css">  <script src="https://storage.googleapis.com/code.getmdl.io/1.0.2/material.min.js"></script>  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=material+icons">  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>    <body>    <div class="page-content">      <!-- content goes here -->      <div class="mdl-card mdl-shadow--2dp products">        <div class="mdl-card__title">          <h2 class="mdl-card__title-text">dell xp13 </h2>        </div>        <img src="https://goo.gl/gddh0i" alt="dell xp13">        <div class="mdl-card__supporting-text"><b>basisprijs: 1.649,00$<b></div>  								<div class="mdl-card__actions mdl-card--border">  									<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">  										add cart  									</a>  									<div class="mdl-layout-spacer"></div>  									<i class="material-icons">add_shopping_cart</i>  								</div>  							</div>		  							<div class="mdl-card mdl-shadow--2dp products">  							<div class="mdl-card__title">  								<h2 class="mdl-card__title-text">chromebook pixel2</h2>  							</div>  							<img src="https://goo.gl/pnie9c.png" alt="chrombook">  							<div class="mdl-card__supporting-text"><b>basisprijs: 999,99$<b></div>  							<div class="mdl-card__actions mdl-card--border">  								<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">  									add cart  								</a>  								<div class="mdl-layout-spacer"></div>  									<i class="material-icons">add_shopping_cart</i>  							</div>  						</div>  						<div class="mdl-card mdl-shadow--2dp products">  							<div class="mdl-card__title">  								<h2 class="mdl-card__title-text">macbook 13'</h2>  							</div>  							<img src="https://goo.gl/qzq0cr" alt="macbook">  							<div class="mdl-card__supporting-text"><b>basisprijs: 1.129,00$<b></div>  							<div class="mdl-card__actioder">  								<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">  									add cart  								</a>  								<div class="mdl-layout-spacer"></div>  									<i class="material-icons">add_shopping_cart</i>  							</div>  						</div>  					</div>    </body>


Comments

Popular posts from this blog

c# - Binding a comma separated list to a List<int> in asp.net web api -

Delphi 7 and decode UTF-8 base64 -

html - Is there any way to exclude a single element from the style? (Bootstrap) -