【发布时间】:2012-09-04 12:18:13
【问题描述】:
我在 Yii 框架(不是 ajax 表单提交按钮)中创建了一个 ajax 链接(CHTML::ajaxLink),它通过 ajax 将一些值传递给控制器。有多个链接将不同的值传递给控制器。我想在将值传递给控制器之前获取单击链接的 id/class 属性(在 jquery.ajax 选项的“beforeSend”中)。只是我只想获取生成 ajax 请求的 id/class 属性。救命!!!
更新::这是代码
echo CHtml::ajaxLink ("Click Here",
Yii::app()->createUrl('default/del/id/6'),
array(
'beforeSend' => 'function(){
//I want to get the id of the link here
}',
'complete' => 'function(){
}',
'update' => '#loadContent'),
);
The above code will generate the following a tag:-
<a href="#" id="yt1">Click Here</a>
当用户单击上面的链接时,我想在 beforeSend 部分中获取 id (yt1) ajax链接。
我尝试了以下代码:
'beforeSend' => 'function(){
$("a").click(function(){
var a = $(this).attr("id");
alert(a);
}
上面的代码有效,但只有在点击链接两次时才会提醒 id。在第三次点击时,id 会收到两次警报,并在随后的点击中不断增加。我对这个奇怪的问题没有任何线索。
【问题讨论】:
-
在点击处理程序中,您可以通过
$(this).attr('id')或$(this).attr('class')获取id 或类。 -
如果你不想用 jquery 摸索,你可以生成你的链接,以便 id 和 class 是链接中的参数(即 GET 请求)
-
您会收到多个警报,因为您每次在 beforeSend 中都在链接上注册一个新的点击处理程序。实际上,您应该在 ajax 数组中定义一个“数据”键,在其中设置一个 JSON 键:值,例如 {key1: $(this).attr('id')}