单击时禁用父事件,但允许子项维护自己的事件

时间:2016-07-22 09:16:11

标签: javascript jquery preventdefault stoppropagation

我有大的上传表格,用户可以在这里拖放图片。但是当加载图像时,我会显示按钮,点击该按钮应链接到某个页面。但是这个元素而不是加载下一页,打开文件选择窗口(它的父默认行为)

所以我要检查,如果事件有课程,如果它是真的,我使用e.preventDefault()

这样做效果更好(我没有在链接点击上有图像选择窗口,但这个链接也不起作用 - 每个事件都被禁用)我的问题是,我现在如何启用链接?

// jFiler is a parent - upload form, with event - on click it opens window for file choose - like input field.
$(document).on('click', '.jFiler', function(e) {
    if ($(event.target).hasClass("jFiler-input-done-btn"))  {
        e.stopPropagation();
        e.preventDefault();
    }
});

$('.jFiler-input-done-btn').on('click',function(e) {
    // Test works, but this is a link, and it cannot link to another page now...
    alert ('test')
});

2 个答案:

答案 0 :(得分:1)

您在父e.stopPropagation()事件中使用e.preventDefault()click中断链接执行。你必须在那里返回true

$(document).on('click', '.jFiler', function(e) {
    if( $(event.target).hasClass("jFiler-input-done-btn") ) {
        return true;
    }
});

答案 1 :(得分:1)

只需重定向到您已附加的点击事件中的其他页面:

$('.jFiler-input-done-btn').on('click',function(e) {
    windows.location.href = $(this).attr('href');
});

//OR also

$('.jFiler-input-done-btn').on('click',function(e) {
    e.stopPropagation();
});

希望这有帮助。