我知道這個問題已經被問及無數次了,在這裏和Yii網站,但我沒有得到解決方案,即使經過每個解決方案。我確信我正在做一些根本性錯誤的事情。所以,如果你仍然讀這個 - 這裏什麼也沒有,Yii - jQuery不在render後部分
我有一個頁面,有一個CheckBoxList小部件被加載。它有一個change()jQuery函數調用,刷新一個完美的CGridView。我也有一個跨度與checkBoxList中的每個項目都有一個點擊事件。
這個點擊事件,進而調用一個控制器,「部分呈現」視圖 -
Yii::app()->clientscript->scriptMap['jquery.js'] = false;
$this->widget('ext.xxx.EModelWidget', array(
'name' => $widget_name,
'manufacturer_id' => $manufacturer_id,
)
);
以及相應的部件代碼從數據庫中提取數據$後打印的CheckBoxList。
echo CHtml::checkBoxList($this->name, array(), $data, array(
'class' => 'modelFilter',
'separator' => '',
'template' => '<div>{input} {label}</div>',
'id' => 'dummyID',
));
正如你所看到的,我已經把類名,將呈現爲一個複選框每個元素是modelFilter
現在我在主視圖文件的腳本只是顯示單擊類modelFilter的複選框時顯示一個警告框。
Yii::app()->clientScript->registerScript('model-selected', "
$('input.modelFilter').change(function(){
alert('Hellpo!');
});
");
但不幸的是,這從來沒有發生過。
我在所有的論壇已讀出的兩種常見的解決方案是
一個)的Yii ::應用程序() - > clientscript->腳本映射[ '的jquery.js'] = FALSE;你可以看到我已經適時跟蹤。
b)renderPartial的$ result和$ processOutput參數分別爲false和true。,這也是我所遵循的。
所以我的問題是我該怎麼做才能獲得通過Ajax工作,在Yii加載的內容的更改功能!
據我瞭解...點擊事件也觸發AJAX請求?如果是這種情況,你可以檢查響應中是否包含jQuery JavaScript include?如果是這樣,這可能會重新初始化你的jQuery並搞亂你的JavaScript邏輯,儘管你應該可以通過設置processOutput爲'false'來禁用它。 – schmunk 2012-02-02 16:31:45