Javascript 事件触发未完成
我有可以用箭头锚项目切换的div。单击后,div将显示或隐藏它的内容(标记锚定和标题所在的标题) 在切换器旁边,我有一个图标,它应该删除div,但我想做的是,如果切换器关闭,它将触发切换器事件并打开div以查看它,然后再决定是否删除它 这是我的密码:Javascript 事件触发未完成,javascript,jquery,Javascript,Jquery,我有可以用箭头锚项目切换的div。单击后,div将显示或隐藏它的内容(标记锚定和标题所在的标题) 在切换器旁边,我有一个图标,它应该删除div,但我想做的是,如果切换器关闭,它将触发切换器事件并打开div以查看它,然后再决定是否删除它 这是我的密码: var toggler = parentDiv.find('a.toggle'); if (toggler.hasClass('toggle_closed'))
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;
}
问题是,当我单击delete按钮时,它会触发事件,因此箭头会改变,但它不会显示div,而是请求确认。如果取消,将显示div,因此我认为需要等待它结束事件。.trigger()函数的第二个参数是“extraParameters”,因此请首先尝试如下更改行:
toggler.trigger('click');
这可能不是你的问题。切换内容div时是否有动画?可能确认正在阻止动画。您可以手动调用toggle(或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);
}
});