我在Yii中有一个表单,想要通过Ajax加载下一步。所以我有以下要求:
$.ajax({
url: jQuery("#form-1").attr("action"),
type: "POST",
data: jQuery(form).serialize()
}).done(function(data) {
jQuery("body").html(data);
});
该网址引导我们进行以下操作:
$this->render('formStep2', array('model' => $model));
所以整个视图将被覆盖。 问题是,所有事件触发的javascript函数都不起作用。 (例如afterValidateAttribute以及具有鼠标悬停的事件等)
我如何让这些工作?
绑定代码例如:
jQuery("#collapsor").mouseover(function(e) {
...
jQuery("#collapsing").collapse('show');
...
}
控制台说:“未捕获的TypeError:Object [object Object]没有方法'collapse'”(bootstrap)。当我只使用from bootstrap建议的html代码(并点击一下)进行折叠时,它就会起作用......
或者就像我说自动生成的Yii函数“afterValidateAttribute”等等,但根本没有控制台错误。
编辑:当我使用document.write(ajaxContnent)时,崩溃的东西正在工作,但没有动画,Yii表单函数仍然无效......
答案 0 :(得分:0)
处理动态添加内容的方法是将事件附加到文档并定位您需要的事件和选择器。
使用jquery的on
jQuery('body').on("mouseover","#collapsor", function(e) {
jQuery("#collapsing").collapse('show');
});
在此处详细了解委派活动:http://api.jquery.com/on/