Yii - jQuery funktioniert nicht nach renderPartial

Ich weiß, diese Frage wurde gebeten, zahlreiche Anzahl der Male, sowohl hier als auch in der Yii-Website, aber ich bin nicht immer die Lösung, auch nach Durchlaufen der jeweiligen Lösung. Ich bin sicher, ich mache etwas grundlegend falsch. Also, wenn Sie immer noch der Lektüre dieses - hier geht nichts mehr,

Ich habe eine Seite, die hat ein CheckBoxList-widget geladen wird. Es hat ein change() jQuery function call aktualisiert, ein CGridView, die funktioniert bestens. Ich habe auch eine Spanne bezogen auf jedes der Elemente in der checkBoxList, die ein click-Ereignis.

Klicken Sie auf die Veranstaltung, die wiederum ruft eine Steuerung, die "teilweise rendert" anzeigen -

Yii::app()->clientscript->scriptMap['jquery.js'] = false;


$this->widget('ext.xxx.EModelWidget', array(
'name' => $widget_name,
'manufacturer_id' => $manufacturer_id,
    )
);

Und den entsprechenden widget-code druckt eine CheckBoxList nach Holen $Daten aus der db.

echo CHtml::checkBoxList($this->name, array(), $data, array(
        'class' => 'modelFilter',
        'separator' => '',
        'template' => '<div>{input} {label}</div>',
        'id' => 'dummyID',
    ));

Wie Sie sehen können, habe ich den Namen der Klasse für jedes element, das dargestellt wird, wie ein Kontrollkästchen, um modelFilter

Nun habe ich ein Skript in der Haupt-view-Datei zur Anzeige einer alert-box, wenn die checkBox von der Klasse modelFilter geklickt wird.

Yii::app()->clientScript->registerScript('model-selected', "
$('input.modelFilter').change(function(){
  alert('Hellpo!');
  });
");

Aber leider nie passiert.

Den zwei gängige Lösungen, die ich gelesen habe in allen Foren ist

a) Yii::app()->clientscript->scriptMap['jquery.js'] = false;, die Sie sehen können, dass ich ordnungsgemäß befolgt werden.

b) $Ergebnis und $processOutput Parameter der renderPartial mit false und true bzw.., das ist auch etwas, das ich verfolgt habe.

Also meine Frage ist was soll ich tun, einfach die ändern-Funktion auf einen Inhalt, der geladen wird per Ajax zu arbeiten, in Yii!!

So weit wie ich es verstehe ... das click-Ereignis feuert auch ein AJAX-request? Wenn dies der Fall ist, könnte man schauen, ob ein jQuery JavaScript-include-in der Antwort? Wenn dem so ist, kann dies erneut initialisieren Sie Ihre jQuery-und mess up Ihre JavaScript-Logik, obwohl Sie sollten in der Lage sein zu deaktivieren, indem processOutput auf 'false'.

InformationsquelleAutor Anand Sainath | 2012-02-02

Schreibe einen Kommentar