2015-02-26 21:09:43 4392次浏览 2条回答 1 悬赏 10 金钱

YII在单个view里写些CSS或JS 的时候用到

1.$this->registerJsFile('@web/other/jquery.autocomplete.min.js',['depends'=>['yii\web\JqueryAsset'],'position'=>View::POS_HEAD])
2.$this->registerCssFile('@web/other/jquery.autocomplete.css');

3.$this->registerJs($jsstring)
4.$this->registerCss($cssstring)

1和2我这样理解,因为框架会用到很多组件,所有JS代码会有很多依赖,得通过PHP代码管起来

3和4我就觉的别扭了,css还好说,一些简单的修改,不用registerCss,在view里直接用html的,
js就不行,JQUERY库很多是加载在页面底,不用registerJs的话自己写JQUER代码不工作,比如这样写不是很累

$jsstring=" $("a.topLink").click(function() {
		$("html, body").animate({
			scrollTop: $($(this).attr("href")).offset().top + "px"
		}, {
			duration: 500,
			easing: "swing"
		});
		return false;
	}); ";
$this->registerJs($jsstring);

$jsstring字符串里面这么多双引号,单引号,怎么弄弄,都转义?

以上理解是不是错了?自己写的一些js代码段怎么弄弄方便些?

补充于 2015-02-27 18:39

谢谢了,这样方便多了

  • 回答于 2015-02-27 10:11 举报

    你可以这样写,不用转义

    <?php $this->beginBlock('myjs') ?>
    function jsfunction() {
    
    }
    <?php $this->endBlock() ?>
    
    <?php $this->registerJs($this->blocks['myjs'], \yii\web\View::POS_END); ?>
    
  • 回答于 2015-02-28 09:30 举报
    $script = <<<JS
    function jsfunction() {
    ##code
    }
    JS;
    $this->registerJs($script);
    
您需要登录后才可以回答。登录 | 立即注册
搞搞的传奇
见习主管

搞搞的传奇

注册时间:2015-02-24
最后登录:2020-06-04
在线时长:24小时46分
  • 粉丝8
  • 金钱5
  • 威望10
  • 积分345

热门问题