如下图,我想让ef中执行了跳转之后就不要再执行alert了,怎么搞?
在window.location.href后面加return
改了下问题描述,你再帮我看下!谢谢!
@轶寒: 加了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的时候不执行
@与阳光握手言和: ef中不一定会执行跳转,我是想在它执行跳转的时候,就不再往后执行,上面的图片只是一个示例
@轶寒: 那就单独加一个变量来区分,可以采用3楼的方法
@与阳光握手言和: 除了这种有没有直接点的
@轶寒: 不好意思,目前我知道的就这两种方法,因为如果不加条件进行判断,在页面跳转之前一定会执行alert,或者你也可以不用alert,自己模拟一个弹窗
呃,听楼上的。
改了下问题描述,你再帮我看下!谢谢!
@轶寒: 比较困难,你试试在后面写个死循环。
@沧海一杰: 没其他方法了吗
@轶寒: 想通过子函数影响调用者的行为,这个有点难度。
加个变量来判断呗
var b=true; function ds(){ ef(); if(b){ alert("Enter") ; } } function ef(){
b=false; window.location.href="WebForm22.aspx"; }
return false 即可!
加在哪里?
ef中不一定会跳转,我是想在它执行跳转的时候就不在执行alert
最简单的方法,去掉alert("Enter") ;
感觉你迟早要去掉的。
那只是个例子
加个return false 就可以了
怎么加?求答案
@轶寒:在ef()下加上去应该就可以了
@哎哟,不错哦: 我是想在ef方法里弄,因为ef中实际上需要判断是否跳转,有方法吗?
@轶寒: 这是我写的 希望可以帮到你
三楼的方案比较好
没错,最好的办法就是加个变量判断
用回调吧。
function yes(){
//.....随你干嘛
window.location.href="WebForm22.aspx";
}
function no(){
//.....随你干嘛
alert('提醒');
}
function ds(yes,no){
//处理逻辑和运算;
if('跳转'){
yes();
}else{
no();
}
}
看楼主的意思应该是 感觉是
js事件冒泡的问题吧,应该是执行后触发了其他事件,不想继续执行
3个方法:
1.return false
2.e.stopxxxx()停止冒泡(名字忘了)
3.如果是闭包或者是方法里面,参数加一个event.stopxxxx()
太基础的东西了。
function ef(){ window.location.href='http://www.baidu.com';throw '结束了'; }