【问题标题】:TbModal with CHtml::link not firing带有 CHtml::link 的 TbModal 未触发
【发布时间】:2013-12-02 18:49:24
【问题描述】:

我正在使用一系列 TbModal 和 CHtml 链接来触发它们的显示,但是模态从未出现。代码看起来正确,生成的 HTML 看起来也正确,但没有显示模式。

这是模态的代码,它是循环的,每个循环都会生成一个新的模态/链接对:

<?php $this->beginWidget('bootstrap.widgets.TbModal', array('id'=>$list['wbse']));?>
  <div class="modal-header">
    <a class="close" data-dismiss="modal">x</a>
    <h3><?php echo Yii::t('cmin', 'project_details')?></h3>
  </div>
  <div class="modal-body">
    <p><?php echo CHtml::encode($list['summary'])?></p>
    <p><?php echo CHtml::encode($list['objective'])?></p>
  </div>
<?php $this->endWidget();?>

这是 CHtml::Link

<?php echo CHtml::link($list['wbse'], '#'.$list['wbse'], array(
    'data-toggle'=>'modal',
    'data-target'=>'#'.$list['wbse']
)); ?>

生成的 HTML 看起来不错:

<a href="#P-000978.001" data-target="#P-000978.001" data-toggle="modal">P-000978.001</a>

但从来没有弹出模式。

【问题讨论】:

  • 刚刚意识到问题出在我在
    中使用的 ID 的内容上。它有一个 。在里面我没有转义,所以 jQuery 找不到它。

标签: jquery twitter-bootstrap yii


【解决方案1】:

我认为您可能在错误的位置定义了模态窗口的 id。它必须是 htmlOptions 的一部分。所以不是这个;

<?php $this->beginWidget('bootstrap.widgets.TbModal', array('id'=>$list['wbse']));?>

试试这个

<?php $this->beginWidget('bootstrap.widgets.TbModal', array('htmlOptions' => array('id'=>$list['wbse'])));?>

【讨论】:

  • 这是相同的区别,因为第二个参数被假定为 htmlOptions (至少我是如何理解文档的)。这两段代码都会生成一个以&lt;div id="P-000978.001" class="modal hide fade"&gt; 开头的模态,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多