yii中的多个ajax请求

yii中的多个ajax请求,yii,yii-extensions,Yii,Yii Extensions,通过ajax在另一个视图中渲染后,我的ajax链接不起作用。我在ajax中使用了委托函数来防止它。在第一个视图中,它运行良好,但在第二个页面中,它发送了多个单击请求 这是我的密码: $i=0; foreach($contents as $conts){ echo CHtml::ajaxLink(conts->name, array('frontend/dataView','id'=> $conts->content_id,'cat_id'=>$ca

通过ajax在另一个视图中渲染后,我的ajax链接不起作用。我在ajax中使用了委托函数来防止它。在第一个视图中,它运行良好,但在第二个页面中,它发送了多个单击请求

这是我的密码:

$i=0;
foreach($contents as $conts){

   echo CHtml::ajaxLink(conts->name, 
       array('frontend/dataView','id'=> $conts->content_id,'cat_id'=>$cat->parent_id ), 
       array('update'=>'#level3rd','beforeSend'=>'function(){$(\'body\').undelegate(\'#cont'.$i.'\', \'click\');}',),
       array('id'=>'cont'.$i,'onclick'=>"makeContactive(this.id);"));
$i++;
}

您可能正在以以下方式渲染视图:

$this->renderPartial($view, $params);
试试这个:

$this->renderPartial($view, $params, false, true);

我不确定情况是否如此,但是。。。页面加载后,有些东西与jquery绑定

例如,我使用selected。我有一个函数,它将所选下拉列表与具有特定类的所有下拉列表联系起来。现在,如果我带上Ajax代码,这些下拉列表不会使用Selected,因为绑定它们的函数在开始时都运行了1次。如果我想让下拉菜单再次使用selected,那么我需要在调用ajax后重新运行将selected与selects绑定的函数


您确定ajax链接的情况并非如此吗?

onclick事件对动态加载的内容不起作用

在旧的jQuery中,您需要手动将您的点击绑定到.live('click')(1.7之前) 现在,从jQuery1.7开始,您可以使用.on('click')

尽管你应该告诉我,你不会犯和我一样的错误

$('myAnchor')。在('click',myclickFunction)

这在pageload上运行良好,但在动态内容上不起作用。 正确的做法是

$('parentElement')。在('click'、'myAnchor'、'customEvenName',myclickFunction)

此处的父元素应该是未动态加载的元素


所有这些的实际好处是,您可以将事件放在任何位置(“单击”),通常放在js脚本中的某个位置,这样所有事件只加载一次。

您可以查看此代码,对吗?如何在控制器中渲染它?您正在使用render或renderPartial?是的,这是我的观点。我在controller中使用renderPartial渲染它。不,我使用了相同的$this->renderPartial($view,$params,false,true);