David Dahan
David Dahan

Reputation: 11152

jQuery bind action on many events

Very begginer question, but I can't find out the way I should execute a function on two different events: when the page is loaded AND when the checkbox is changed.

For now, here is what I have. It works but it's supid because not DRY:

<script>

$(document).ready(function(){

    if ($("#visit_mode").prop('checked')){
      $("#cart_div").hide();
      $("#visit_div").show();
    }
    if ($("#cart_mode").prop('checked')){
      $("#visit_div").hide();
      $("#cart_div").show();
    }

  });

$(".checkbox").change(function() {

  if ($("#visit_mode").prop('checked')){
    $("#cart_div").hide();
    $("#visit_div").show();
  }
  if ($("#cart_mode").prop('checked')){
    $("#visit_div").hide();
    $("#cart_div").show();
  }

});

</script>

Upvotes: 0

Views: 39

Answers (1)

AmmarCSE
AmmarCSE

Reputation: 30557

Assign that code to a named function

$(document).ready(namedFunction);

$(".checkbox").change(namedFunction);

function namedFunction(){
  if ($("#visit_mode").prop('checked')){
    $("#cart_div").hide();
    $("#visit_div").show();
  }
  if ($("#cart_mode").prop('checked')){
    $("#visit_div").hide();
    $("#cart_div").show();
  }

}

Upvotes: 5

Related Questions