我正在使用stephanwagner jBox来完成以下任务。
我有一个列表链接,如:
<a href="#" rel="first" class="delete">Delete First</a>
<a href="#" rel="second" class="delete">Delete Second</a>
<a href="#" rel="third" class="delete">Delete Third</a>
<a href="#" rel="fourth" class="delete">Delete Fourth</a>
我的目标是这些元素。单击它们时,会向我显示确认以确定是否确实要删除某些内容。但是现在我点击哪个链接很重要,它总是选择连续的第一个元素。当按下ok / yes时,我正在使用带有回调函数的confirm
。
问题是,我无法获得当前点击的元素。我使用$(this)
,仍然无法正常工作。我想在jBox里面,这指的是jBox本身。
以下是我开始的方式
new jBox('Confirm',{
attach: $('.delete'),
title: 'Confirmation dialogue box',
content: 'Do you want to continue?'
confirm: function(){
$.ajax({
url: 'delete-file',
data:{
'path': $(this).attr('rel') // It obviously didnt work as it is always selecting the first element in a row.
}
});
},
cancel: function(){
}
});
答案 0 :(得分:0)
以这种方式试试
$(.delete).each(function(){
new jBox('Confirm',{
attach: $(this),
title: 'Confirmation dialogue box',
content: 'Do you want to continue?'
confirm: function(){
$.ajax({
url: 'delete-file',
data:{
'path': $(this).attr('rel') // It obviously didnt work as it is always selecting the first element in a row.
}
});
},
cancel: function(){
}
});
})
答案 1 :(得分:0)
您需要像这样修改插件代码: 例如,您在头部加载 jBox.all.js ; 然后在2032行中进行更改,以用以下代码替换代码“ this.options.confirm()”:“ this.options.confirm( this.source )”!因此,在确认处理程序中,您单击了榆木:
confirm: function(elm){
console.log(elm.attr('id'));
}
类似地,您可以将此问题解决给其他事件处理程序。