【问题标题】:how can I use jquery with yii2如何在 yii2 中使用 jquery
【发布时间】:2015-05-19 19:16:24
【问题描述】:

我是 Yii 框架(2.0 版)的新手,我想在我的页面中添加一些 jQuery 代码:

$(document).ready(function(){
    $('div').click(function(){
        $(this).hide()
    });
});  

这段代码点击会隐藏div,可以在视图中声明<script>吗?

我如何在 jQuery 中编写这段代码?

【问题讨论】:

标签: php jquery yii2


【解决方案1】:

首先建议您将($this) 更改为$(this) 并尝试这样的操作。

$script = <<< JS
$(document).ready(function(){
    $('div').click(function(){
        $(this).hide()
    });
}); 
JS;
$this->registerJs($script, View::POS_END);

您也可以使用View::POS_HEADView::POS_BEGINView::POS_READY 代替View::POS_END

【讨论】:

  • 在视图中写下:
  • 成功了 registerJs(" $('div').click(function() { $(this).hide(); }); "); ?>
【解决方案2】:

试试这个,希望对你有帮助

<?php

$this->registerJs(' 
    $(document).ready(function(){
         $(\'.classname\').hide();
});', \yii\web\View::POS_READY);

?>

【讨论】:

    【解决方案3】:

    在 Yii2 中,jQuery 和其他脚本文件默认位于页面末尾 html 结束标记之前。这有利于更快的页面加载。

    因此,如果您在页面中间编写 jQuery 代码,将会出现$ not defined 错误。要解决这个问题,您应该在 window.onload 事件中编写 jQuery 代码:

    window.onload=function(){
                            //your jQuery code here
                        };
    

    【讨论】:

    • 看起来像一个肮脏的解决方案。为什么要写在jQuery之前?你应该把它包括在后面。 Yii2 使用registerJs 和资产包依赖提供解决方案。
    • 你是对的,我们应该包括在后面。但在开发模式下,有时在测试代码块的正下方编写 jQuery 代码会更方便
    猜你喜欢
    • 2015-08-29
    • 2016-03-15
    • 2018-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-18
    • 2014-09-19
    相关资源
    最近更新 更多