js开发过程中的问题 -- 关于如何控制某些效果的消失

pdnev 2015-05-09 12:01:00
公司前端不会js(或者jquery),临时写下页面效果。现在遇到了一个很苦恼的问题
比如我现在在写仿win8界面,右键点击一个模块后,该模块打上了对勾,现在问题来了,什么时候取消掉这个对勾,或者说在什么地方写去掉这个对勾的方法。因为,很多操作都要涉及到将这个对勾去掉,比如,右键点击其他模块的右键、左键点击打开一个模块、在body上点击左键、换到另外一屏幕,那么我是不是要在上面所有的方法中写上取消掉对勾的方法了?如果是这样,维护、开发都太麻烦了,这还是一个效果,要是效果多了。。。虽然公司在三楼,跳下去还是摔的死的
...全文
199 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangbai333 2015-05-11
  • 打赏
  • 举报
回复
有如下模块 1 2 3 4 5 6 7 8 9 其中单数是点击出对号的即1 3 5 7 9 你要做的就是写一个取消任何对号的方法 和一个对自身增加对号的方法! 一)向1 3 5 7 9绑定增加对号的方法,执行逻辑是这样的,首先调用取消任何对号,然后调用对自身增加对号 二)向所有其他取消对号的操作上绑定取消任何对号

function removeDuiHao(){}
function addDuiHao(var o){向o增加一个对号,具体的代码你自己写吧}
$('1,3,5,7,9').click(function(){  
    removeDuiHao();
    addDuiHao(this);
})
$('2,4,6,8').click(removeDuiHao)
未知数 2015-05-09
  • 打赏
  • 举报
回复
方法1:用全局函数 方法2:给一个标签A绑定事件函数实现该功能, 其他需要该效果时,trigger一下A的事件
pdnev 2015-05-09
  • 打赏
  • 举报
回复
请问下 有没有什么还的方法想法来解决这个问题
天际的海浪 2015-05-09
  • 打赏
  • 举报
回复
你可以用一个伪事件回调对象来协调各个模块之间互相调用的问题 把test1(),test2(),test3()等函数分类绑定到伪事件回调对象中 在事件2.3.4.5.6.7就可以执行某一分类的伪事件回调
未知数 2015-05-09
  • 打赏
  • 举报
回复
用事件委托: $('body').on('click', '.bindclick', function(){ test(); }); 这样所有class中包含bindclick的标签点击时都会调用test 同理mousedown事件也可以这么做
pdnev 2015-05-09
  • 打赏
  • 举报
回复
引用 2 楼 wzs_xyz 的回复:
方法1:用全局函数 方法2:给一个标签A绑定事件函数实现该功能, 其他需要该效果时,trigger一下A的事件
大概明白第二种方法,可能我表述的不清楚,我现在遇到的问题是: 事件1:将body背景色改为红色 事件2:左键点击body时执行xxxx 事件3:鼠标移动到屏幕左上角执行xxxx 事件4:鼠标移动到屏幕右上角执行xxxx 事件5:点击某一div执行xxxx function test() = 将body背景色还原 现在假设事件1已经触发,body背景色已经变为红色 在事件2、 3 、 4 、5 触发时,都要使背景色还原,那么我现在就必须要在事件2.3.4.5中调用test方法,到现在应该是没什么 问题的,但是随着js越写越多,事件2.3.4.5.6.7....中可能都要加test(),并且可能还要加test1(),test2(),test3()等取消某些效果的方法,并且还可能在2.3.7.5中加上test4()方法,这样会越来越复杂,到最后写一个效果就要很长的时间 所以现在想没有什么好的思路来解决这个问题。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧