मुझे पता है कि इस प्रश्न को यहां और वाईआई साइट दोनों में कई बार पूछा गया है, लेकिन मुझे प्रत्येक समाधान के माध्यम से भी समाधान नहीं मिल रहा है। मुझे यकीन है कि मैं कुछ मौलिक रूप से गलत कर रहा हूं। तो यदि आप अभी भी इसे पढ़ रहे हैं - यहां कुछ भी नहीं है,वाईआई - jQuery रेंडर के बाद काम नहीं कर रहा है
मेरे पास एक ऐसा पृष्ठ है जिसमें चेकबॉक्स लिंक विजेट लोड हो रहा है। इसमें एक परिवर्तन() jQuery फ़ंक्शन कॉल है जो एक CGridView को रीफ्रेश करता है जो पूरी तरह से अच्छी तरह से काम करता है। मेरे पास चेकबॉक्स सूची में से प्रत्येक आइटम से संबंधित एक अवधि भी है जिसमें एक क्लिक ईवेंट है।
यह क्लिक करें घटना, बारी में एक नियंत्रक जो एक दृश्य "आंशिक रूप से renders" कहता है -
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
अब मैं सिर्फ प्रदर्शित करने के लिए मुख्य दृश्य फ़ाइल में एक स्क्रिप्ट है होना करने के लिए क्लास मॉडलफिल्टर के चेकबॉक्स पर क्लिक होने पर एक अलर्ट बॉक्स क्लिक किया जाता है।
Yii::app()->clientScript->registerScript('model-selected', "
$('input.modelFilter').change(function(){
alert('Hellpo!');
});
");
लेकिन दुर्भाग्यवश, ऐसा कभी नहीं होता है।
दो आम समाधान जो मैं सभी मंचों में पढ़ा है है
क) Yii :: एप्लिकेशन() -> clientscript-> scriptMap [ 'jquery.js'] झूठी =; जो आप देख सकते हैं कि मैंने विधिवत पालन किया है।
बी) $ परिणाम और $ प्रक्रिया प्रस्तुत करने के आउटपुट पैरामीटर क्रमशः झूठी और सत्य होने के लिए।, जो कुछ भी मैंने किया है।
तो मेरा सवाल यह है कि मैं अजाक्स के माध्यम से लोड की गई सामग्री पर बदलाव समारोह प्राप्त करने के लिए क्या करना चाहिए, वाईआई में !!
जहां तक मैं इसे समझता हूं ... क्लिक ईवेंट भी AJAX अनुरोध को सक्रिय करता है? यदि यह मामला है तो क्या आप जांच सकते हैं कि एक jQuery जावास्क्रिप्ट प्रतिक्रिया में शामिल है या नहीं? यदि ऐसा है, तो यह आपके jQuery को पुन: प्रारंभ कर सकता है और आपके जावास्क्रिप्ट तर्क को गड़बड़ कर सकता है, हालांकि आप प्रक्रिया को आउटपुट को 'गलत' पर सेट करके अक्षम कर सकते हैं। – schmunk