Tengo una función de acceso de usuario que tiene datos como este. Lectura de datos de la API
"allowView": true, "allowAdd" : true, "allowEdit": false, "allowDel" : falseasí es como compruebo la condición de los datos. Condición para los datos de acceso del usuario.
e.allowView== true ? $("button.viewBtn").prop("disabled",false) : $("button.viewBtn").prop("disabled",true); e.allowAdd== true ? $("button.addBtn").prop("disabled",false) : $("button.addBtn").prop("disabled",true); e.allowEdit== true ? $("button.editBtn").prop("disabled",false) : $("button.editBtn").prop("disabled",true); e.allowDel== true ? $("button.deleteBtn").prop("disabled",false): $("button.deleteBtn").prop("disabled",true); pero tengo problema para llamar a la clase deleteBtn en <span> porque en esta línea de código no tenía botón.
<span class="text-center"><a onclick ="deleteMsg('${emsg_id}')" class=""><span class="text-danger" data-toggle="tooltip" data-placement="top" title="Delete"><em class="icon ni ni-trash"></em></span></a></span> ¿Cómo agrego la condición en mi declaración de acceso de usuario para poder usarla en mi <span> sin agregar el <button> ?
En primer lugar, puede refactorizar este código para que en lugar de:
e.allowView== true ? $("button.viewBtn").prop("disabled",false) : $("button.viewBtn").prop("disabled",true);Puede ser simplemente:
$("button.viewBtn").prop("disabled", e.allowView != true);Y lo segundo, puedes en tu función de devolución de llamada:
deleteMsg(par) { if (!e.allowDel) return false; // Your existing code... }También puede agregar alguna clase en su enlace, por lo que puede agregar algún tipo de clase "deshabilitada" allí ...
Por ejemplo:
if (!e.allowDel) $(selectorToLink).addClass('disabled-link'); .disabled-link { pointer-events: none; }