2014-02-20 6 views
-3

Я пытаюсь создать простую функцию обратного вызова. Когда пользователь выбирает определенное поле, он отменяет выбор всех полей над ним. НО, если они отмените выбор этого поля, он вернется в исходное состояние.JQuery Call Back Object

Так что мой HTML выглядит следующим образом:

<div id="check-container"> 

     <label class="margined-check"><input name="weekly" class="no-margin" type="checkbox"> <span class="margincheck bold">Weekly</span> 
     </label> 

     <label class="margined-check"><input name="daily" class="no-margin" type="checkbox"> <span class="margincheck bold">Daily</span> 
     </label> 
     <label><input name="inPerson" class="no-margin type="checkbox"> <span class="margincheck bold">In-Person</span> 

     </label> 
     <label><input name="tracker" class="no-margin" type="checkbox"> <span class="margincheck bold">Track</span> 

     </label> 
     <label><input name="onCall" class="no-margin" type="checkbox"> <span class="margincheck bold">On Call</span> 
     </label> 
     </div> 

    <div> 
     <label><input name="clearAll" class="no-margin clearAll"type="checkbox"> <span class="margincheck bold">No Communication</span> 
     </label> 
     </div> 

Затем я использую этот скрипт:

var CBback = {}; 
    $('.clearAll').change(function() { 

    if ($(this).is(':checked')) 
    { 
    //call back object 
    $(CBback).extend({ 
    Weekly: $("input[name='weekly']").(':checked'), 
    Daily: $("input[name='Daily']").(':checked'), 
    inPerson: $("input[name='inPerson']").(':checked'), 
    Tracker: $("input[name='Tracker']").(':checked'), 
    onCall: $("input[name='onCall']").(':checked') 
    }); 

    //uncheck boxes 
    $(this).parent().parent().find('#check-container).prop('checked', false); 

    } 
    else{ 
    //go through object and reassign values to inputs 
    $.each(CBback, function(key, value){ 
    $("input[name='+key+').prop('checked, value); 
    } 





}); 

Я получаю ошибку на '$ (CBback) .extend ({' говоря линия есть неожиданный «(»

Благодаря передовой.

+1

Посмотрите на подсветку синтаксиса, чтобы увидеть свою ошибку. – SLaks

+1

'$ (" input [name = '+ key +') 'должно быть, должно быть' $ ('input [name =' + key + ']') '. Вам также не хватает другого' '' around' prop (' проверено) '.' find ('# check-container) 'также должно быть' find (' # check-container ') 'Это базовая проверка синтаксиса. – Matt

+0

Отсутствует одиночная кавычка в конце # check-container –

ответ

0

Существовали много синтаксических ошибок. в нескольких секунд вы использовали неправильное кодирование, а также отсутствовали кавычки и заканчивали}) ;.

Вот ваш код прямо сейчас

var CBback = {}; 

$('.clearAll').change(function() { 

    if ($(this).is(':checked')) 
    { 
     //call back object 
     $(CBback).extend({ 
      Weekly: $("input[name='weekly']:checked"), 
      Daily: $("input[name='Daily']:checked"), 
      inPerson: $("input[name='inPerson']:checked"), 
      Tracker: $("input[name='Tracker']:checked"), 
      onCall: $("input[name='onCall']:checked") 
     }); 

     //uncheck boxes 
     $(this).parent().parent().find('#check-container').prop('checked', false); 

    } 
    else{ 
     //go through object and reassign values to inputs 
     $.each(CBback, function(key, value){ 
      $("input[name='+key+'").prop('checked', value); 
     }); 
    } 
}); 

В будущем, пожалуйста, попробуйте проверить синтаксис. Это можно сделать, проверив собственный код или используя онлайн-инструмент, такой как http://www.javascriptlint.com/online_lint.php.

Надеюсь, это поможет.