Problema na alteração de classes do jquery

estou desenvolvendo um layout simples com html, css e jquery. O meu problema é que o icone da esquerda está sendo trocado pelas setas da direia quando eu seleciono um accordion.

Problema informado

HTML

<ul class="menu">             <li><a href="#"><i class="icone icone-menu fas fa-home"></i>Inicio</a></li>             <li><a href="#"><i class="icone icone-menu fas fa-address-book"></i>Clientes</a></li>             <li><a href="#">Fornecedores</a></li>             <li><a href="#">Orçamentos</a></li>             <li><a href="#">Pedidos</a></li>             <li><a href="#">Produtos<i class="icone fechado fas fa-chevron-right"></i></a>                 <ul>                     <li><a href="#">Categoria</a></li>                     <li><a href="#">Subcategoria</a></li>                     <li><a href="#">Produtos</a></li>                 </ul>             </li>             <li><a href="#">Relatórios<i class="icone fechado fas fa-chevron-right"></i></a>                 <ul>                     <li><a href="#">Pedidos</a></li>                     <li><a href="#">Produtos</a></li>                 </ul>             </li>         </ul>  

CSS

.sidebar ul {   list-style: none; }  .sidebar .menu li a {   text-decoration: none;   display: block;   padding: 15px 20px; }  .sidebar .menu li a:hover {   color: #485053;   background: #e2e2e2; }  .sidebar .menu .icone {   font-size: 18px; }  .sidebar .menu .icone {   font-size: 12px; }  .sidebar .menu .icone.fechado{   margin-left: 10px;   float: right; }  .sidebar .menu .icone.icone-menu {   margin-right: 10px; }  .sidebar .menu ul {   display: none; }  .sidebar .menu ul li a {   background: #343a40; }  .sidebar .menu .ativado > a {   color: #485053;   background: #e2e2e2; } 

Jquery

$  (document).ready(function () {      $  ('.menu li:has(ul)').click(function(e){         e.preventDefault();          if($  (this).hasClass('ativado')) {             $  (this).removeClass('ativado');             $  ('.menu li i').removeClass('fas fa-chevron-down');             $  ('.menu li i').addClass('fas fa-chevron-right');             $  (this).children('ul').slideUp();         } else {             $  ('.menu li ul').slideUp();             $  ('.menu li').removeClass('ativado');             $  (this).addClass('ativado');             $  ('.menu li i').removeClass('fas fa-chevron-right');             $  ('.menu li i').addClass('fas fa-chevron-down');             $  (this).children('ul').slideDown();         }     });  }); 

¿Como formulo los data atributos de manera dinamica en js o jquery utilizando una funcion personalizada para reenderizar el datatable?

La cuestion es la siguiente: Tengo un datatable personalizado llenado con multiples checks que se dibuja dinamicamente con la llamada al api, el problema es que necesito que cada columna tenga un data-atributo(data-modulo), es una tabla que autoriza los permisos que tiene cada usuario pero para poder inicializarlos todos segun los permisos autorizados de cada usuario y para eso necesito que cada columna debajo de los modulos tenga los siguientes atributos les muestro:

 const columnas = [                         { "data":'id', "title":'Departamento', "targets":0 },                         { "data":'correo_electronico', "title":'Correo Electr&oacute;nico', "visible":false, "targets":1 },                          { "data":'nombre', "title":'Nombre', "targets":2 },                         { "data":'check1', "className":'text-center', "targets":3, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":5,"data-lectura":1}) } },                         { "data":'check2', "className":'text-center', "targets":4, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":5,"data-escritura":1}) } },                         { "data":'check3', "className":'text-center', "targets":5, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":4,"data-lectura":1}) } },                         { "data":'check4', "className":'text-center', "targets":6, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":4,"data-escritura":1}) } },                         { "data":'check5', "className":'text-center', "targets":7, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":3,"data-lectura":1}) } },                         { "data":'check6', "className":'text-center', "targets":8, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":3,"data-escritura":1}) } },                         { "data":'check7', "className":'text-center', "targets":9, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":2,"data-lectura":1}) } },                         { "data":'check8', "className":'text-center', "targets":10, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":2,"data-escritura":1}) } },                         { "data":'check9', "className":'text-center', "targets":11, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":1,"data-lectura":1}) } },                         { "data":'check10', "className":'text-center', "targets":12, "bSortable":false, "createdCell":function(td){ $  (td).attr({"data-modulo":1,"data-escritura":1}) } },                         { "data":'check11', "className":'text-center', "targets":13, "bSortable":false },                     ];   

La cuestion estaria que sea dinamica la parte del createdCell para que la columna par que es permiso de lectura me se agregue el data-lectura y en la columna impar se agregue el data-escritura y a su vez se agregue el data-modulo pero en decremento cada dos columnas, es decir, que pasa las primeras dos columnas de lectura y escritura se agregue 4, despues en la siguiente se agregue 4 y despues 3 asi sucesivamente cada 2 columnas hasta que llegue a 1 solamente.

Lo intente hacer de la siguiente manera:

  let  data_attr = (td,cellData,rowData,rowIndex,colIndex) =>{                                                            if (rowData.id === 1) {                         for (let i = a(modulos_id.length); i >= 1; i--) {                             for (let j = 1; j <= 2; j++) {                                 if (colIndex % 2 === 0)                                      $  (td).attr({"data-modulo":i,"data-lectura":1});                                 else                                      $  (td).attr({'data-modulo':i,"data-escritura":1});                                    }                              }                         }                                                   }  //Declaramos las columnas y asignamos los valores junto con cada conjunto de checks en sus respectivos permisos                     const columnas = [                         { "data":'id', "title":'Departamento', "targets":0 },                         { "data":'correo_electronico', "title":'Correo Electr&oacute;nico', "visible":false, "targets":1 },                          { "data":'nombre', "title":'Nombre', "targets":2 },                         { "data":'check1', "className":'text-center', "targets":3, "bSortable":false, "createdCell":data_attr },                         { "data":'check2', "className":'text-center', "targets":4, "bSortable":false, "createdCell":data_attr },                         { "data":'check3', "className":'text-center', "targets":5, "bSortable":false, "createdCell":data_attr },                         { "data":'check4', "className":'text-center', "targets":6, "bSortable":false, "createdCell":data_attr },                         { "data":'check5', "className":'text-center', "targets":7, "bSortable":false, "createdCell":data_attr },                         { "data":'check6', "className":'text-center', "targets":8, "bSortable":false, "createdCell":data_attr },                         { "data":'check7', "className":'text-center', "targets":9, "bSortable":false, "createdCell":data_attr },                         { "data":'check8', "className":'text-center', "targets":10, "bSortable":false, "createdCell":data_attr },                         { "data":'check9', "className":'text-center', "targets":11, "bSortable":false, "createdCell":data_attr },                         { "data":'check10', "className":'text-center', "targets":12, "bSortable":false, "createdCell":data_attr },                         { "data":'check11', "className":'text-center', "targets":13, "bSortable":false },                     ];   

Sin embargo en los lopps al momento que se ejecuta la funcion no me lo deja como en el primer fragmento de codigo si no mas bn todo funciona pero estoy atorado con el data-modulo para que me decremente como espero y en realidad cuando entra ya al reendereado del datatable se queda en un solo valor por ejemplo 1 y se lo agrega a todas las columnas de de los permisos en todas las filas de los usuarios

Fallo con JQuery y AJAX

Estoy intentando que me muestre un div de error en un formulario y me lo oculte cuando hago un keyup en el campo de texto. El problema viene dado cuando importo la librería Jquery en el JSP y en el JS declaro la función Jquery. No me ejecuta ni el submit del formulario y en la consola de Chrome,Firefox,IE me muestra un error de parseerror. En el JS llega a entrar en la llamada AJAX(he añadido un console.log()) . He intentado comentar la linea de dataType e incluso cambiar el tipo de json a text en la llamada AJAX y me sigue dando un parseerror. Si no comento la linea de dataType no entra en la llamada AJAX. Se queda en el $ .ajax

Esta imagen es la salida por consola del código que he dejado aquí.

introducir la descripción de la imagen aquí

Código JSP:

 <spring:url value="/resources/js/jquery-3.4.1.js" var="jqueryJs" />             <script src="$  {jqueryJs}"></script>         <%-- <script type="text/javascript" src="/openiam-ui-static/js/common/jquery/jquery-1.9.1.min.js"></script>--%>         <script type="text/javascript" src="/openiam-ui-static/js/common/openiam.common.js"></script>         <%--<script type="text/javascript" src="/openiam-ui-static/moment/moment-with-locales.min.js"></script>--%>         <script type="text/javascript" src="/openiam-ui-static/bootstrap/js/bootstrap.min.js"></script>         <script type="text/javascript" src="/openiam-ui-static/bootstrap/js/bootbox.min.js"></script>         <script type="text/javascript" src="/openiam-ui-static/bootstrap/js/bootstrap-notify.js"></script>         <script type="text/javascript" src="/openiam-ui-static/bootstrap-ui/js/bootstrap-toggle.min.js"></script> 

Código JS:

jQuery(document).ready(function($ ) {

    $  ("#error").hide();     $  ("#otp-form").submit(function(event) {         event.preventDefault();         sendOTP();     });  });   function sendOTP() {     $  ("#error").empty().hide();      var otpToken = {};       otpToken["smsCode"] = $  ("#smsCode").val();     otpToken["authToken"] = $  ("#authToken").val();     otpToken["postbackURL"] = $  ("#postbackURL").val();      $  .ajax({         url : "otpToken",         type : "POST",         //dataType : 'json',         data : JSON.stringify(otpToken),                 success : function(data) {                               console.log("SUCCESS: ", data);             if(data.code == 200) {                 var redirectURL = data.redirectURL;                 if(redirectURL != null && redirectURL != undefined && redirectURL.length > 0) {                     window.location.href = redirectURL;                 }                  console.log(data);             } else if(data.code == 103) {                  //Account Locked             } else {                 $  ("#error").empty().hide();                 $  ("#error").show();                 $  ("#error").append("<a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a>");                 $  .each(data.errorList, function(idx, val) {                     $  ("#error").append($  (document.createElement("div")).text(val.message));                 });             }         },         error : function(e) {             console.log("ERROR: ", e);         },         done : function(e) {             console.log("DONE");             disableButtons(false);         }     }); } 

Esta imagen es la salida por consola del código con dataType descomentado.

introducir la descripción de la imagen aquí

Add jquery reference to JSlink file

I am using JSLink feature of Sharepoint 2013, My jslink file has code to get current user id and other details, for this I need to add reference of jquery file.

I tried adding adding those files in in jslink on edit page webpart section separated by semicolon, but that didn’t work.

In short, I need way where in i can reference the library files for jslink code similar to script tag in html file.

jQuery DatetimePicker y Php

Estoy atascado en la implementación de un datetime picker. La verdad es que soy inexperto en javascript, ya logre acomodar el caledario bastante bien pero lo que me falta es que se deshabiliten ciertos días a partir de una consulta en php a mysql, que almacena fechas y horas en formato Datetime.

me suena lógico hacer un select con php y hacer un echo en algún campo del javascript que sea “excluir” o algo así pero la verdad que no manejo java.

 <?php             $  _POST['rut'];      $  date=("SELECT fechahora FROM reservas WHERE (rut = '$  _POST[rut]')");     $  hora = mysqli_query($  con,$  date) or mysqli_error($  con);     while($  reserva = mysqli_fetch_array($  hora))   ?>                       var excluir = ["<?php echo $  reserva['fechahora']; ?>"];                 $  (function(){                 $  ("#datetimepicker").datetimepicker({                 onGenerate:function( ct ){     jQuery(this).find('.xdsoft_date.xdsoft_weekend')       .addClass('xdsoft_disabled');   },                             minDate: (0),                 dayOfWeekStart: (1),                 weekends:['01.01.2014','02.01.2014','03.01.2014','04.01.2014','05.01.2014','06.01.2014'],                 timepicker:true,                 format: 'Y-m-d H:i',                 inline:true,                  disabledWeekDays: [],                                                                    allowTimes:['09:00', '10:00', '11:00', '12:00', '13:00', '14:00', '15:00', '16:00', '17:00', '18:00', '19:00', '20:00']                      });                 $  .datetimepicker.setLocale('es');                 }) 

Jquery как получить значение input от динамической формы?

У меня есть кнопка, которая создаёт поле ввода методом append $ ('.NewRows').append('<input> id="exm"></input>');

Такой код возвращает значение undefined.

var Input1Var; $ ("#Input1").on('input',function(){ Input1Var=$ ("#Input1").val(); })

Как я могу считать значение val этого поля? Спасибо

Problemas al implementar Jquery EasyAutocomplete en Laravel

Estoy haciendo un desarrollo en laravel donde utilizo la búsqueda con Jquery EasyAutocomplete, la cuál no he logrado implementar. Cree la vista, controladores y rutas pero al compilar me imprime el Json con el total de los datos y no logro hacer la búsqueda. Acá les dejo mi código para mas detalle:

web.php

Route::get('/', function () { return view('welcome'); });  Route::get('/busqueda', 'BusquedaController@search')->name('busqueda.search'); 

busquedacontroller.php

<?php  namespace App\Http\Controllers;  use Illuminate\Http\Request;  use DB;  use App\Establecimiento;  class BusquedaController extends Controller {  public function search(Request $  request)  {    $  data = Establecimiento::where('nombre', 'LIKE', '%'.$  request->search.'%') ->get(); return \response()->json($  data);  }    } 

busqueda.blade.php

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Busqueda</title>  <link rel="stylesheet" href="../../public/dist/easy-autocomplete.min.css"> <script src="../../public/dist/jquery.easy-autocomplete.min.js"></script> <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>  </head> <body>  <div class="container"> <div class="col-6">   <input id="autocomplete-search" />  </div> </div>  <script>  $  ("#autocomplete-search").easyAutocomplete({ url: function(search) { return "{{route('busqueda.search')}}?search=" + search; },  getValue: "nombre" });  </script> </body> </html> 

Esto es lo que muestra al compilar:

Resultado código

Sharepoint restrict dropdown jquery

https://sharepoint.stackexchange.com/a/266026/84972

I tried with JQuery codes from google but it is not working. This is the how it looks: enter image description here

Code I tried:

$ (document).ready(function(){

//Show/hide columns based on Drop Down Selection $ (“select[title=’Time Slot Required Field’]”).change(function() { if ($ (“select[title=’Project Type’]”).val() != “Other”)

{ $ (‘nobr:contains(“Project Subtype”)’).closest(‘tr’).hide(); }

else { $ (‘nobr:contains(“Project Subtype”)’).closest(‘tr’).show(); } });

});