在href之前在click()函数中执行方法

时间:2015-09-10 07:40:35

标签: javascript jquery html

我有一个发送数据的href按钮,在此之前我想使用Bootbox.js

显示弹出窗口

HTML:

<a href="submit?result=something"> 
  <button class="alert btn btn-primary" type="button">Submit</button>
</a>

JS:

$('alert').click(function(){
    bootbox.alert("Submitted!", function() {
        console.log("Alert Callback");
    });
});

这只执行href操作,因此不会使用Bootbox.js显示弹出窗口。有没有办法在关闭它之后立即执行一个函数并执行href?

供参考:http://bootboxjs.com

1 个答案:

答案 0 :(得分:1)

您可以使用return false;

$('.alert').click(function(e){ // missed the . for the class selector
    bootbox.alert("Submitted!", function() {
        location.href = this.parentNode.href;
    });
    return false;
});

另一个建议是在按钮本身上使用data-*属性,而不是将其包装在一个锚中:

<button class="alert btn btn-primary" data-href="submit?result=something" type="button">Submit</button>

然后你可以使用它:

$('.alert').click(function(e){ // missed the . for the class selector
    bootbox.alert("Submitted!", function() {
        location.href = this.dataset['href'];
    });
});