我在动态生成javascript时遇到错误:
$(document).ready(function(){
$("#$this->AddURLSegment").colorbox();
}
HTML:
<a href="<?php echo $AddURLSegment;?>?width=500&height=500&iframe=false" id="<?php rcho $AddURLSegment;?>">Add</a>
错误: 首先点击Add:
uncaught exception: Syntax error, unrecognized expression: #
第二次:
ab.html(a.close).show is not a function
uncaught exception: Syntax error, unrecognized expression: #
和2个叠加打开,一个好,一个打破。
!当我像这样硬编码选择器(ID名称)....时,它的工作原理。
$("#add").colorbox();
这里有什么锣!?
我在silverstripe cms中这样做
javascript(noconflict)在Controller :: init()
中生成 Requirements::customScript('
$j(document).ready(function(){
$j("#'.$this->AddURLSegment.'").colorbox();
});
');
Html的内容在View中。
* SilverStripe基于MVC范例。
答案 0 :(得分:0)
您的问题是您正在尝试从Controller :: init()中访问$ this-&gt; AddURLSegment。 AddURLSegment方法在控制器类中不可用。您需要在控制器的子类中调用它。大多数SilverStripe页面如下所示:
页面扩展SiteTree { }
Page_Controller扩展ContentController { public init(){ 要求:: customScript(...); } }
因此,将customScript添加到您正在使用的页面类型的控制器中。这应该有效。