No puedo establecer un atributo personalizado para mi botón. Aquí está mi código por favor revíselo, gracias.
btn.setAttribute('@click.prevent', 'login()') <button name="user-auth-submited" id="user-auth-submit" class="user-auth-submit-btn" type="submit">ثبت نام</button> Estoy usando alpine.js y debería tener que usar @ y quiero alternar el atributo @click.prevent', 'login() to @click.prevent', 'register()
No puede establecer atributos dinámicos como este, porque sucede después de la inicialización de Alpine.js, por lo tanto, Alpine.js no lo sabe. Pero hay un método diferente, en el que usamos una variable de estado, donde rastreamos si el usuario desea iniciar sesión o registrarse.
<div x-data="{login: false}"> <button @click="login = !login">Switch login/register mode</button></span> <button @click.prevent="login_or_register" x-text="login ? 'Login' : 'Register'"></button> <script> function login_or_register() { if (this.login) { // Login stuff } else { // Register stuff } } </script> </div> El primer botón alterna nuestro nuevo estado llamado inicio de login . El segundo botón llama a la función login_or_register en la que accedemos a this.login variable.login y ejecutamos el código de inicio de sesión o registro seleccionado. También puede generalizarlo fácilmente a más estados si es necesario.