2014-02-24 78 views
0

我在Yii中有一个表单,并希望通过Ajax加载下一步。所以,我有以下要求:YiiFramework - Ajax加载后无javascript功能

$.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'); 
... 
} 

有控制台说:“未捕获类型错误:对象[对象的对象]无方法‘塌陷’”(自举)。当我只使用从引导程序建议的HTML代码(和点击)折叠,然后它的工作...

或者像我说的自动生成的Yii函数“afterValidateAttribute”等,但没有一个控制台 - 所有的错误。

编辑:当我使用文件撰写(ajaxContnent)崩塌的事情是工作,但没有动画和Yii的形式功能仍无法正常工作......

+0

如果您正在使用jQuery,你应该 '活' 的功能。例如:使用$(“#button”)。live('click',function(){});而不是$(“#button”)。click(function(){});与其他事件相同 –

+0

添加事件绑定代码问题 – Ravi

+0

与“生活”的功能是否不工作:( –

回答

0

处理动态地添加内容的方式,是将事件附加到文档并定位您需要的事件和选择器。 使用jQuery的on

jQuery('body').on("mouseover","#collapsor", function(e) { 
    jQuery("#collapsing").collapse('show'); 
}); 

在这里阅读更多有关委派事件:http://api.jquery.com/on/