Este evento de plantilla Meteor click .vote en la casilla de verificación intenta verificar si es hermano anterior inmediato para ver si está marcado. ¿Cómo puede hacerse esto? Gracias

Template.checkbox.events({
  'click .valid': () => {
     //do stuff
  },
  'click .vote': () => {  //99c
    //check if its nearest sibiling is checked else exit
    if ($(this).prevAll('input.valid').checked) {  //<------ not cutting it
       console.log('its sibling is checked');
       //do stuff
    } else {
      console.log('its sibling is not checked');
      //do other stuff
    }
  }
});
<template name="checkbox">
  <div class="checkbox-container">
    <div class="checkbox">
      <label class="check">
        <input class="valid" type="checkbox" name={{name}} value={{value}} checked={{checked}}>{{label}}
        <input class="vote" type="checkbox" name={{name}} value={{value}} checked={{checked}}>
      </label>
    </div>
  </div>
</template>
1
Fred J. 7 mar. 2017 a las 07:39

2 respuestas

La mejor respuesta

Pruebe esto: puede utilizar .siblings() como se muestra a continuación

$(function(){
$(".vote").click(function(){
if($(this).siblings('input.valid').is(":checked")) {  //<------ not cutting it
   console.log('its sibling is checked');
   //do stuff
} else {
  console.log('its sibling is not checked');
  //do other stuff
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>

    <div class="checkbox">
        <input class="valid" type="checkbox">Checkbox Valid
        <input class="vote" type="checkbox">Checkbox Vote
    </div>

Para obtener más información sobre Siblings ()

1
Bhushan Kawadkar 7 mar. 2017 a las 04:53
$(".vote").change(function() {

  if ($(this).closest('.check').find('input.valid').is(":checked")) { 
    console.log('its sibling is checked');
    //do stuff
  } else {
    console.log('its sibling is not checked');
    //do other stuff
  }
}).change();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="checkbox-container">
  <div class="checkbox">
    <label class="check">
        <input class="valid" type="checkbox" name={{name}} value={{value}} checked={{checked}}>{{label}}
        <input class="vote" type="checkbox" name={{name}} value={{value}} checked={{checked}}>
      </label>
  </div>
</div>

Esta es la solución que busca :checked

1
guradio 7 mar. 2017 a las 04:54