javascript - 有两个函数都绑定了鼠标左键事件,冲突怎样解决?
PHP中文网
PHP中文网 2017-04-11 10:27:31
[JavaScript讨论组]

两个函数分别绘制两个不一样的图形,通过绑定鼠标左键来实现。
现在两个函数会同时进行,怎样解决?

PHP中文网
PHP中文网

认证0级讲师

全部回复(3)
大家讲道理
<button id="drawCircle">画圆</button>
<button id="drawSphere">画球</button>
// 需要 jQuery
$("#drawCircle").on("click", function() { 画圆的代码 });
$("#drawSphere").on("click", function() { 画球的代码 });
// 不用 jQuery
document.getElementById("drawCircle").addEventListener("click", ...);
document.getElementById("drawSphere").addEventListener("click", ...);
怪我咯

有两个思路哈
思路一、对同一dom绑定事件过程中,细分两个事件函数的触发条件,通过触发条件的区分去绑定不同的事件。
思路二、两个事件函数的在绑定之前,判断改dom元素是否已经绑定事件,解绑事件后,再重新绑定您需要的事件。

写个例子哈,
jquery环境,菜单。ul下面有li,部分li下面嵌套ul>li(二级菜单或者更多)
$('.example').on('click','ul',function(){

if($(this).children().length > 0){ //这就是你不同函数的条件
    //有下级菜单的处理
}else{
    //没有下级菜单的处理
}

});

巴扎黑

楼主你是要两个demo元素分别绑定了click事件还是说监听鼠标左键触发两个不同的事件?要是第一种,就像楼上说的,你直接创建两个页面元素,然后给这两个元素分别绑定click事件,执行画圆或者画方就可以了(当然也可以向1楼说的,添加判断,然后再分别执行对应的事件),即:
obj1.onclick=function(){//画圆方法};
obj2.onclick=function(){//画方方法};
。要是第二种:event.button方法可以试试: if(btnNum==0)
{
//画圆和画方的方法调用;
}

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号