事件触发未完成

时间:2011-08-27 21:21:22

标签: javascript jquery

我有可以用箭头锚项切换的div。单击后,div会显示内容或隐藏它(保留锚点和标题所在的标题)。

在切换器旁边,我有一个应该删除div的图标但是我想这样做,如果潜水是toggle_closed它会触发切换器的事件并在你决定是否是之前打开div看它要删除它或不会删除它。

这是我的代码:

    var toggler = parentDiv.find('a.toggle');
                    if (toggler.hasClass('toggle_closed'))
                        toggler.trigger('click',function(){

                        });
                    var option = parentDiv.find('input[name="tag"]').val();

                    var textConfirm = 'Are you sure you want to delete the "'+option+'"?';
                    if (confirm(textConfirm)){
do something;
}

问题在于,当我点击删除按钮时它会触发事件,因此箭头会改变,但它不显示div但要求确认。如果您取消,则会显示div,因此我认为我需要等待它才能结束此事件。

1 个答案:

答案 0 :(得分:0)

.trigger()函数第二个参数是'extraParameters'所以首先尝试更改这样的行:

toggler.trigger('click');

这可能不是你的问题。切换内容div时是否有动画?也许确认是阻止了动画。您可以手动调用切换(或slideToggle)并在动画结束时使用回调,而不是触发点击:

function showDelConfirm(targetDiv) {
    var option = targetDiv.find('input[name="tag"]').val();
    var textConfirm = 'Are you sure you want to delete the "' + option + '"?';
    if (confirm(textConfirm)) {
        do something;
    }
}

$('.deleteButton').click(function () {
    var parentDiv = $(this).parent();
    var toggler = parentDiv.find('a.toggle');
    if (toggler.hasClass('toggle_closed')) {
        $('.divToShow').toggle('fast', function () {
            showDelConfirm(parentDiv);
        });
    } else {
        showDelConfirm(parentDiv);
    }
});