确认框取消功能与确定执行相同的操作
Confirm box cancel function does the same thing as OK
我希望有人告诉我为什么取消按钮将我重定向到 Youtube 而不是取消操作。
function link(){
var r = confirm("Are you leaving?");
if (r = true) {
a.link("http://www.youtube.com");}
else {
return true;}
}
<a href="http://www.youtube.com" onclick="link()">Youtube</a>
因为省略一个等号,您将r
设置为此处true
:
if (r = true) {
只需将其更改为:
if (r == true) {
或
if (r === true) {
或者只是为了
if (r) {
function link(){
var r = confirm("Are you leaving?");
// if user clicks ok he'll be redirected to youtube
// as "r" will be truthy
if (r) { // this means user clicked ok
return a.link("http://www.youtube.com");
}
else {
return false; // and this means user clicked cancel so he'll not be redirected so this needs to be set to false
}
}
confirm
将返回 true 或 false,但在您的代码中,您将 true 分配给 r
因此它永远不会起作用。
正如我在上面的评论中所写的,您需要将 else 语句中的返回设置为 false。
例如,我建议您使用window.location
而不是使用a.link()
。
function link(){
var r = confirm("Are you leaving?");
if(r){
var redirect = window.location = "http://youtube.com";
return redirect;
}
else{
return false;
}
}
<a href="http://youtube.com" onclick="return link()">click here to be redirected!</a>
相关文章:
- 单击元素两次后执行操作
- 如何在mvc3中执行操作而不更改当前页面
- jQuery onunload在按下按钮时执行操作
- 如果DOM发生更改,您将如何执行操作
- 在执行所有回调函数后执行操作
- JavaScript 对输入框执行操作
- 如何根据各种复选框状态执行操作
- 对页面重新加载 Jquery 执行操作
- jQuery如果大于则执行操作,但只执行一次
- ngStorage是否异步执行操作
- 如何逐一执行操作
- 只有当输入文本是example.com这样的域时才执行操作
- Javascript数学不起作用,更好的方式来执行操作
- Qubit在控制台中执行操作
- 停止setInterval,直到未执行操作
- 我如何使用javascript对音频标记执行操作
- JS 函数将对象作为输入,并返回一个对象,该对象对作为参数传递的对象执行操作
- 单击时执行操作多个具有相同类的 href
- 在 JavaScript 中传递指定秒数后如何执行操作
- 如何在对用户控件执行操作后调用 Web 服务