Проверено, что jQuery .prop () не работает

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть следующая функция, когда я устанавливаю флажок ‘chx’, отладчик сообщает мне, что ‘name’ не определено. Я не вижу, в чем здесь ошибка:

 <script>
   function nameF() {
       $('#chx').prop('checked') ? $('div').slideDown() : $('div').slideUp();
   }
</script>
  

флажок:

 <asp:CheckBox ID="chx" runat="server" Text="Text" onchange="nameF('div')" />
  

Редактировать:

Похоже, что ни в одном из ответов не отображается div,

    function medicalProblems(Medfurtherdetails) {
                  $('#chxMedicalVision').prop('checked') ? $(Medfurtherdetails).show() : $(Medfurtherdetails).hide();
   }
  

флажок:

 <asp:CheckBox ID="chxMedicalVision" runat="server" Text="Vision" onchange="medicalProblems('Medfurtherdetails')" />
  

div:

     <div id="Medfurtherdetails" style="display:none"></div>
  

Теперь это рабочий режим, хотя он не скрывает div, когда ничего не проверяется:

    function medicalProblems(thediv) {
       if ($("#chxMedicalVision").prop('checked') || $("#chxMedicalHearing").prop('checked') || $("#chxMedicalSpeech").prop('checked'))
       {
        $("#"   thediv).slideUp();
      }
      else
    {
        $("#"   thediv).slideDown();
    }
}
  

Комментарии:

1. Вы отправляете параметр в функции без параметра 🙂

2. $(‘#chx’).is (‘:проверено’)?

Ответ №1:

Изменить

 $('#chx').prop('checked') ? $(element).slideDown() : $(element).slideUp();
  

Для

 $(this).prop('checked') ? $(element).slideDown() : $(element).slideUp();
  

и удалите параметр ‘div’, как упоминалось в других ответах.

Ответ №2:

 <script>
   function nameF(x) {
   $('#chx').prop('checked') ? $('div').slideDown() : $('div').slideUp();
  }
</script>

<asp:CheckBox ID="chx" runat="server" Text="Text" onchange="nameF('div')" />
  

если вы хотите передать параметр, должна быть переменная, которая будет храниться в нем.

Ответ №3:

Либо удалите 'div' из этого

 <asp:CheckBox ID="chx" runat="server" Text="Text" onchange="nameF('div')" />
  

который должен быть таким

 <asp:CheckBox ID="chx" runat="server" Text="Text" onchange="nameF()" />
  

или

сделайте что-то вроде этого

 <script>
   function nameF(mydiv) {
       $('#chx').prop('checked') ? $('#' mydiv).slideDown() : $('#' mydiv).slideUp();
   }
</script>
  

Комментарии:

1. не понял вас .. когда вы добавляете style="display:none" , он скрывает ваш div.

2. да. По умолчанию нет необходимости показывать div. Я использую переключатель в другом месте, потому что в этом случае есть несколько флажков, и переключатель работает не так, как я намереваюсь.