首页 新闻 会员 周边 捐助

JS跳转之后不再执行

0
悬赏园豆:80 [待解决问题]

如下图,我想让ef中执行了跳转之后就不要再执行alert了,怎么搞?

轶寒的主页 轶寒 | 初学一级 | 园豆:4
提问于:2017-08-17 17:38
< >
分享
所有回答(12)
0

在window.location.href后面加return

与阳光握手言和 | 园豆:373 (菜鸟二级) | 2017-08-17 17:41

改了下问题描述,你再帮我看下!谢谢!

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-17 17:48

@轶寒: 加了return后是不执行alert的

<div onclick="ds()">
       测试 
    </div>
    <script>
        function ds(){
            ef();
            return;
            alert('111');
        }
        function ef(){
            window.location.href='http://www.baidu.com';
        }
    </script>

不过我有个疑问,既然不需要执行加alert干嘛?还是说你想根据具体情况来决定是否执行alert?如果是的话,可以添加一个变量,true的时候执行,false的时候不执行

支持(0) 反对(0) 与阳光握手言和 | 园豆:373 (菜鸟二级) | 2017-08-17 18:01

@与阳光握手言和: ef中不一定会执行跳转,我是想在它执行跳转的时候,就不再往后执行,上面的图片只是一个示例

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-17 18:03

@轶寒: 那就单独加一个变量来区分,可以采用3楼的方法

支持(0) 反对(0) 与阳光握手言和 | 园豆:373 (菜鸟二级) | 2017-08-17 18:05

@与阳光握手言和: 除了这种有没有直接点的

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-18 08:46

@轶寒: 不好意思,目前我知道的就这两种方法,因为如果不加条件进行判断,在页面跳转之前一定会执行alert,或者你也可以不用alert,自己模拟一个弹窗

支持(0) 反对(0) 与阳光握手言和 | 园豆:373 (菜鸟二级) | 2017-08-18 09:39
0

呃,听楼上的。

空明流光 | 园豆:111 (初学一级) | 2017-08-17 17:44

改了下问题描述,你再帮我看下!谢谢!

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-17 17:49

@轶寒: 比较困难,你试试在后面写个死循环。

支持(0) 反对(0) 空明流光 | 园豆:111 (初学一级) | 2017-08-17 17:51

@沧海一杰: 没其他方法了吗

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-18 08:46

@轶寒: 想通过子函数影响调用者的行为,这个有点难度。

支持(0) 反对(0) 空明流光 | 园豆:111 (初学一级) | 2017-08-21 17:48
0

加个变量来判断呗

var b=true;
function ds(){
   ef();
    if(b){
        alert("Enter")  ;
    }
}   
function ef(){

b=false; window.location.href
="WebForm22.aspx"; }
huangzebin | 园豆:228 (菜鸟二级) | 2017-08-17 17:52
0

return false 即可!

大楚打码人 | 园豆:4313 (老鸟四级) | 2017-08-17 19:21

加在哪里?

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-18 08:44

ef中不一定会跳转,我是想在它执行跳转的时候就不在执行alert

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-18 08:45
0

最简单的方法,去掉alert("Enter") ;

感觉你迟早要去掉的。

ycyzharry | 园豆:25683 (高人七级) | 2017-08-17 19:43

那只是个例子

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-18 08:45
0

加个return false 就可以了

哎哟,不错哦 | 园豆:184 (初学一级) | 2017-08-17 20:26

怎么加?求答案

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-18 08:45

@轶寒:在ef()下加上去应该就可以了 

支持(0) 反对(0) 哎哟,不错哦 | 园豆:184 (初学一级) | 2017-08-18 08:51

@哎哟,不错哦: 我是想在ef方法里弄,因为ef中实际上需要判断是否跳转,有方法吗?

支持(0) 反对(0) 轶寒 | 园豆:4 (初学一级) | 2017-08-18 09:06

@轶寒: 这是我写的 希望可以帮到你

支持(0) 反对(0) 哎哟,不错哦 | 园豆:184 (初学一级) | 2017-08-18 09:10
0

三楼的方案比较好

lippor | 园豆:51 (初学一级) | 2017-08-18 16:33
0

没错,最好的办法就是加个变量判断

姚刘乐 | 园豆:70 (初学一级) | 2017-08-21 11:22
0

用回调吧。

function yes(){

  //.....随你干嘛

  window.location.href="WebForm22.aspx";

}

function no(){

  //.....随你干嘛

  alert('提醒');

}

function  ds(yes,no){

  //处理逻辑和运算;

  if('跳转'){

    yes();

  }else{

    no();

  }

}

codingHeart | 园豆:1511 (小虾三级) | 2017-08-21 15:52
0

看楼主的意思应该是 感觉是

js事件冒泡的问题吧,应该是执行后触发了其他事件,不想继续执行

 

3个方法:

1.return false

2.e.stopxxxx()停止冒泡(名字忘了)

3.如果是闭包或者是方法里面,参数加一个event.stopxxxx()

JasNature | 园豆:451 (菜鸟二级) | 2017-08-22 14:12
0

太基础的东西了。

Naylor | 园豆:137 (初学一级) | 2017-08-24 10:02
0

function ef(){ window.location.href='http://www.baidu.com';throw '结束了'; }

苏小苏sxs | 园豆:202 (菜鸟二级) | 2017-08-25 10:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册