Jquery no me funciona en Yii2

Estoy tratando de usar Jquery para ocultar y mostrar etiquetas HTML pero no me funciona en Yii 2, el código es el siguiente:

<?php
use yii\helpers\Html;
use yii\bootstrap5\ActiveForm;

echo Html::script('
    $("#save_rec").hide(800);
    alert("funciona");
');
?>

<h1>Registro de Usuarios</h1>
<h3 id="save_rec">aaaa<?= $msg ?></h3>

intento ocultar el id save_rec en un view pero no funciona el hide, pero si pongo una alerta esa si funciona, estoy haciendo algo mal? Ya tengo agregado Jquery desde el main.php con el siguiente código:

<script src="<?= Yii::$app->request->baseUrl."/assets/b8e3595c/jquery.js"; ?>"></script>

si ejecuto el jquery en la consola del navegador allí si funciona y me oculta el tag de html, pero desde yii2 no me funciona

No debes incluir jquery en el main.php. Yii se encarga de cargarlo automáticamente. Además, no debes hacer refernecia a la carpeta /assets porque el cotenido de dicha carpeta se genera automáticamente por yii y puede cambiar.

Hay varias maneras de usar javascript en una vista.
La más ortodoxa es crear un asset bundle e incorporarlo a la vista.
La más rápida y válida para pequeños script es usar el método registerJs de la vista:

$this->registerJs( '
    $("#save_rec").hide(800);
    alert("funciona");
',yii\web\View::POS_LOAD);

Echa un vistazo a La guía definitiva de Yii2

Dejo el comentario por si alguien lo busca y no sabe como ponerlo se pone de la siguiente forma:

Yii::$app->view->registerJs(<<<JS
$(‘#save_rec’).hide(4500);
JS);

en el manual no especifica como ponerlo solo ponen la llamada la método, te agradezco tu comentario

1 Like