如何在jBox中访问jBox的当前附加元素?

时间:2015-04-14 09:54:48

标签: javascript jquery jbox

我正在使用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(){

    }

});

2 个答案:

答案 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'));
}

类似地,您可以将此问题解决给其他事件处理程序。