我还是javascript和Jquery的新手。 我知道javascript会在遇到它时执行每一行。 所以在这种情况下(当我的值> 9时)
我想要发生的是自定义警报触发,一旦警报关闭,则让window.open执行。
我该如何做到这一点?
if ($('#MyCount').val() > 9) {
MyCustom.alert("MyTitle", " Some text.... ");
window.open(url, 'Print', "toolbar=no,menubar=no,status=no");
}else {
window.open(url, 'Print', "toolbar=no,menubar=no,status=no");
}
答案 0 :(得分:1)
if ($('#MyCount').val() > 9) {
更改为
var myCount = parseInt($('#MyCount').val());
if (!isNaN(myCount) && myCount > 9) {
其余的取决于MyCustom.alert
的实施。如果它是javascript native alert
的包装器,那么您的代码将按原样运行。如果它正在使用html对话框,则需要向其传递回调以在关闭时运行。
答案 1 :(得分:0)
我只是把这个example放在一起..我希望它有意义。
我们基本上将回调函数作为第三个参数传递给MyCustom.alert
,并从jQuery UI中侦听'dialogclose
事件。
<input id="MyCount" type="text" />
<input type="button" id="test" />
<div id="someAlert">
<h1></h1>
<p></p>
</div>
var MyCustom = {};
MyCustom.alert = function(p1, p2, callback) {
$("#someAlert").dialog();
$("#someAlert").children("h1").text(p1);
$("#someAlert").children("p").text(p2);
alert(typeof(callback));
$("#someAlert").on('dialogclose', function(){
callback();
});
};
function doSomething(){
alert("I'm the callback");
}
var greaterThan9 = function () {
if ($('#MyCount').val() > 9) {
MyCustom.alert("MyTitle", " Some text.... ", doSomething);
//window.open(url, 'Print', "toolbar=no,menubar=no,status=no");
} else {
}
}
$("#test").on("click", function(){
greaterThan9();
});