而不是基本的浏览器确认框,我想用花哨的盒子替换它。
我的默认确认工作如下:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p><a class="btn-remove" onclick="return confirm('Are you sure you would like to remove this item from the shopping cart?');" title="Remove This Item" href="http://google.com">Default</a></p>
我尝试将其替换为如下,
<p><a class="btn-remove" onclick="return getConfirm();" title="Remove This Item" href="http://google.com">Test</a></p>
<script type="text/javascript">
function getConfirm(){
jQuery.fancybox("#data");
$('#yes').on('click', function(){
console.log('I am clicked');
return true;
})
$('#no').on('click', function(){
return false;
})
return false;
}
</script>
function getConfirm(){
jQuery.fancybox("#data");
$('#yes').on('click', function(){
console.log('I am clicked');
return true;
})
$('#no').on('click', function(){
return false;
})
return false;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/fancybox/2.1.5/jquery.fancybox.js"></script>
<p><a class="btn-remove" onclick="return getConfirm();" title="Remove This Item" href="http://google.com">Test</a></p>
<div id="data" style="display:none">
<p>Are you sure want to colse?</p>
<p><div id="yes">Yes</div><div id="no">No</div></p>
</div>
但是它没有返回true给href,因此页面没有重定向。
答案 0 :(得分:1)
您仅从点击处理程序返回true
,而不是getConfirm
函数。
点击#yes
按钮后发生(异步),现在为时已晚,无法向锚点返回任何内容,该船已经航行,现在您必须自行重定向,如同花式框对话框一样不会停止浏览器UI并等待本机确认的响应方式。
function getConfirm(anchor){
jQuery.fancybox("#data");
$('#yes').on('click', function(){
window.location.href = anchor.href;
});
$('#no').on('click', function(){
// close fancybox
return false;
});
return false;
}
并确保通过this
<a class="btn-remove" onclick="return getConfirm(this);" ...