好的,所以我有多个同名的对象:
<a href="<?php echo Utils::createLink('delete-ms'); ?>&tid=<?php echo $tid; ?>"
class="delete-ms">
<img src="img/status/CANCELED.png" alt="" title="Delete milestone."
class="icon" style="width:18px; height: 18px; margin:0;"/>
</a>
以下是对象引用的内容:
<div id="delete-ms-dialog" title="Delete this milestone?">
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;">
</span>This milestone will be deleted. Are you sure?</p>
</div>
这里是JS用来调用链接:
function initDeleteMSDialog() {
var deleteDialog = $('#delete-ms-dialog');
var deleteLink = $('.delete-ms');
deleteDialog.dialog({
autoOpen: false,
modal: true,
width: 476,
buttons: {
'OK': function() {
$(this).dialog('close');
location.href = deleteLink.attr('href');
},
'Cancel': function() {
$(this).dialog('close');
}
}
});
deleteLink.click(function() {
deleteDialog.dialog('open');
return false;
});
}
现在我的问题是多个对象是用同一个类声明的。调用JS函数时,它使用该类作为链接的源。我怎样才能得到它以便location.href首先引用我点击的链接来启动对话框?
答案 0 :(得分:0)
你必须循环使用相同类的所有元素,如
$(".delete-ms").each(function(){
console.log($(this).attr('href'));
});
修改
在click事件中,您可以访问目标锚点的href attr,如
$(".delete-ms").click(function(e){
console.log($(this).attr('href'));
});
答案 1 :(得分:0)
您可以尝试在函数之外声明一个全局变量。
var $lastClicked;
并在触发deleteLink.click时设置变量。
deleteLink.click(function() {
$lastClicked = $(this);
deleteDialog.dialog('open');
return false;
});
这将允许您访问deleteDialog函数中的变量。
'OK': function() {
$(this).dialog('close');
location.href = $lastClicked.attr('href');
}