假设有这样的代码:
Tell us what's your name to make us able to fake to be your friend when sending you an email.
现在假设我对表单的每个元素都有类似的东西(这只是一个例子).在以下情况下,我想将样式从notSelected更改为Selected:
用户专注于输入元素
用户将鼠标移到notSelected div上
当他改变焦点时,所选的div应该再次被选中.
我想做这样的事情来增加所选div文本的大小.无论如何,做其他更改也很酷,所以我更喜欢更改class属性.
在JavaScript中执行此类操作的最佳方法是什么?是否有任何JavaScript框架可以促使我做这件事?因此,添加褪色等效果会很容易...
我下载了MooTools,但是快速阅读文档,我没有看到如何在没有任何表格div的特定ID的情况下执行此操作,但这是我第一次使用它.我没有使用任何其他框架的问题,但如果你建议一个,请写下我应该具体寻找什么.
还有一个纯CSS解决方案来解决这个问题.但是,它在MSIE 6中不起作用.从技术上讲,它的工作方式类似于Tomalek的解决方案,但它不使用JavaScript来切换元素的类,而是使用CSS来切换其样式:
.selectable { /* basic styles … */ } .selectable:hover { /* hover styles … */ } .selectable:active { /* focus styles … */ }
我建议你看一下jQuery来完成你的任务.这很容易学习并快速产生好的效果.但是你所描述的效果,纯JavaScript也足够了.
让你的DIV总是有一个叫做"可选"的类.您可以稍后切换其他CSS类.创建一个名为"selected"的CSS类,并为其提供所需的外观.
(=off) vs.(=on)然后将类似的内容添加到文档的脚本部分:
$(document).ready(function(){ // handle mouseover and mouseout of the parent div $("div.selectable").mouseover( function() { $(this).addClass("selected").addClass("mouseIsOver"); } ).mouseout( function() { $(this).removeClass("selected").removeClass("mouseIsOver"); } ); // handle focus and blur of the contained input elememt, // unless it has already been selected by mouse move $("div.selectable input").focus( function() { $(this).parents("div.selectable").not(".mouseIsOver").addClass("selected"); } ).blur( function() { $(this).parents("div.selectable").not(".mouseIsOver").removeClass("selected"); } ); });这是未经测试的,所以可能会有一个小故障,但它会给你一般的想法从哪里开始.
PS:在鼠标移动时更改文本大小可能不是所有想法中最好的.它导致重新排列对用户来说烦人的页面布局.
推荐阅读
如何解决《访问jquery.each中的元素id属性值》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何在foreach循环中创建HTML表》经验,为你挑选了1个好方法。 ... [详细] 如何解决《sscanf函数中的%*s是什么意思》经验,为你挑选了1个好方法。 ... [详细] 如何解决《重用LINQ查询》经验,为你挑选了3个好方法。 ... [详细] 如何解决《如何重命名AWSAPIGatewayAPI实例?》经验,为你挑选了3个好方法。 ... [详细] 如何解决《在DLL中使用IXMLDocument需要CoInitialize?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在提交应用之前启用bitcodevsincludebitcode》经验,为你挑选了1个好方法。 ... [详细] 如何解决《在光标位置的可编辑div内插入多个元素》经验,为你挑选了0个好方法。 ... [详细] 如何解决《改变argv后的C分段错误》经验,为你挑选了1个好方法。 ... [详细] 如何解决《当调用函数中的下一行是return语句时,使用SaveChangesAsync()有什么好处?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《即使我在调用fetchall之前执行,MySQLdb也会引发"execute()first"错误》经验,为你挑选了1个好方法。 ... [详细] 如何解决《如何使用`gsub`替换具有相同字符串的多个子字符串》经验,为你挑选了1个好方法。 ... [详细] 如何解决《VisualStudioforASP.NET5项目是否需要.sln文件?它可以只使用Global.json吗?》经验,为你挑选了0个好方法。 ... [详细] 如何解决《在Python中有效地分割数据》经验,为你挑选了0个好方法。 ... [详细] 如何解决《kubernetes本地集群创建pod有'ErrImagePull'和'ImagePullBackOff'之类的错误》经验,为你挑选了0个好方法。 ... [详细] 如何解决《按组计算摘要并将值返回到数据框中》经验,为你挑选了2个好方法。 ... [详细] 如何解决《从Swift中的NSBundle获取文件路径》经验,为你挑选了1个好方法。 ... [详细] 如何解决《我没有在sdk中获取'com.google.android.gms:play-services-wallet:8.4.0'更新GooglePlay服务》经验,为你挑选了1个好方法。 ... [详细] 如何解决《将Enum转换为TextBlock文本内的字符串》经验,为你挑选了1个好方法。 ... [详细] 如何解决《有没有办法避免在Android中使用instanceOf?》经验,为你挑选了1个好方法。 ... [详细]吐了个 "CAO" !Tags | 热门标签RankList | 热门文章
- 1使用Symfony 2.8进行LDAP身份验证
- 2为什么align-self:伸展不能在flex项目上工作?
- 3在SceneKit中缩放SCNNode
- 4如何在多主机之间创建docker overlay网络?
- 5Javascript数组初始化行为
- 6如何以编程方式为outlook生成电子邮件线程?
- 7无法使用jQuery UI的日期选择器设置默认日期
- 8在C++中将十六进制转换为整数的最快方法是什么?
- 9对于JavaScript事件,泡沫比捕获更好吗?
- 10如何在python中有效地扩展数组?
- 11Spark SQL - 使用SQL语句而不是表名来使用JDBC加载数据
- 12使用AMP HTML搜索可能吗?
- 13从数组中删除对象 - 两种不同的方法,在查询每个数组的长度时有两种不同的结果
- 14如何在绘图的文本注释(ggplot2)中放置+/-加减运算符?
- 15Visual Studio搜索和替换行结尾
- 16Silverstripe 3.2可重复使用的块
- 17即使在大括号中也显示strace中的完整参数
- 18有没有办法在这里省略特征的生命周期?
- 19异步/等待不等待
- 20CSS类恢复为非活动状态
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有