本帖最后由 lowkey0716 于 2009-11-15 20:21 编辑
完全是自创,如果有雷同,那我肯定不是二次发布和抄袭,是我自己5分钟前在二次开发模板中瞬间觉悟出来的!十分简单高手莫笑,我也是新手,新手帮新手才能共同进步~
本打算收点小钱啦~~~后来想想算了,为了大家都用上这个简单的功能,收钱太恶心了,现在只希望大家支持支持我回复一下……
实现效果:心情点击文本框输入文字,鼠标离开文本框后自动提交并显示。
实现原理:使用了JS的鼠标离开事件。
不良反应:一切使用官方源码,没有任何副作用,无自填代码,安全可靠,以后升级方便修改。
原理解释:- 官方提交心情按钮的代码为:
- <input type="button" id="mood_add" name="add" value="更新" class="submit" style="display:none;" onclick="ajaxpost('mood_addform', 'reloadMood');$('mood_message').value='';" />
复制代码 其中onclick为点击事件,而我在网上不断寻找,发现JS还有一个离开事件:onblur,我想,如果将onclick事件中的JS代码复制到onblur中并将此代码增加到输入心情的文本框表单中,会不会达到预期的效果呢?于是:- 官方输入心情的内容框为:
- <div id="mood_statusinput" class="statusinput"><textarea name="message" id="mood_message" onclick="statusFace();" onkeydown="if(event.keyCode == 13 ){ event.returnValue=false;event.cancel = true;$('mood_add').click();$('mood_message').value='';this.blur(); };" >你可以更新状态, 让好友们知道你在做什么...</textarea></div>
复制代码 我添加onblur事件到文本框代码中一试并删掉原按钮,哇!真的实现了我想要的效果!
下面是详细修改方法,很详细很详细……
打开:template\default(或你的风格目录)\space_status.htm
查找:- onkeydown="if(event.keyCode == 13 ){ event.returnValue=false;event.cancel = true;$('mood_add').click();$('mood_message').value='';this.blur(); };"
复制代码 替换为:- onkeydown="if(event.keyCode == 13 ){ event.returnValue=false;event.cancel = true;$('mood_add').click();$('mood_message').value='';this.blur(); };" onblur="ajaxpost('mood_addform', 'reloadMood');$('mood_message').value='';"
复制代码 很简单,修改结束!
但是,因为我们达到这个效果以后,就不会用到“提交”按钮了,所以我们要删掉它:
查找:
- <input type="button" id="mood_add" name="add" value="更新" class="submit" style="display:none;" onclick="ajaxpost('mood_addform', 'reloadMood');$('mood_message').value='';" />
复制代码 删掉即可!
到这里,所有修改结束,更新缓存,赶快到你的心情那里瞧一瞧吧!
如果你连修改都懒得改,那么你可以直接下载我修改好的这个文件,直接覆盖到default目录即可!直接覆盖不会影响到你的风格,因为这个文件中不含有其它的代码,官方将心情提交框完全独立出来了。(修改好后的朋友也可以资助资助我这个贫民哦!哈哈)
动动手指头,省钱又健康!
同时期待discuz7.2发布!建议前后台登陆分离出来,省的切换账号麻烦。 |