在Ajax编程中,经常要能动态的改变界面元素的样式,可以通过对象的style属性来改
变,比如要改变背景色为红色,可以这样写:
element.style.backgroundColor=”#ff0000”;
其中style 对象有很多属性,基本上CSS 里拥有的属性在JavaScript 中都能够使用。现
在考虑,如果一个函数接收参数,用以指定一个界面元素的样式,那就需要设计参数的实现
方式,显然一个或几个参数是不能符合要求的,下面是一种实现:
function setStyle(_style){
//得到要改变样式的界面对象
var element=getElement();
element.style=_style;
}
这样,直接将整个style对象作为参数传递了进来,一个style对象可能的形式是:
var style={
color:#ffffff,
backgroundColor:#ff0000,
borderWidth:2px
}
这时可以这样调用函数:
setStyle(style);
或者直接写为:
setStyle({ color:#ffffff,backgroundColor:#ff0000,borderWidth:2px});
这段代码看上去没有任何问题,但实际上,在setStyle 函数内部使用参数_style 为
element.style赋值时,如果element 原先已经有了一定的样式,例如曾经执行过:
element.style.height=”20px”;
而_style 中却没有包括对height 的定义,因此element 的height 样式就丢失了,不是最
初所要的结果。要解决这个问题,可以用反射机制来重写setStyle函数:
function setStyle(_style){
//得到要改变样式的界面对象
var element=getElement();
for(var p in _style){
element.style[p]=_style[p];
}
}
程序中遍历_style 的每个属性,得到属性名称,然后再使用方括号语法将element.style
中的对应的属性赋值为_style 中的相应属性的值。从而,element 中仅改变指定的样式,而
其他样式不会改变,得到了所要的结果。

Ajax编程中,经常要能动态的改变界面元素的样式的更多相关文章

  1. 通过JS动态的修改HTML元素的样式和增添标签元素等

    一. 通过JS动态的修改HTML元素的样式   1. 要想在js中动态的修改HTML元素的样式,首先需要写document,    document我们称之为文档对象,这个对象中保存了当前网页中所有的 ...

  2. MVC中使用分部视图参数,改变分部视图连接样式

    MVC中使用分部视图参数,改变分部视图连接样式! Controller代码 [ChildActionOnly] public ActionResult Navigator(int tag) { ret ...

  3. Jquery中数值求和及根据余数改变对应的数值样式

    Jquery内容 <script type="text/javascript"> $(function () { var num = 0; $(".box o ...

  4. Ajax实现在textbox中输入内容,动态从数据库中模糊查询显示到下拉框中

    功能:在textbox中输入内容,动态从数据库模糊查询显示到下拉框中,以供选择 1.建立一aspx页面,html代码 <HTML> <HEAD> <title>We ...

  5. [C] 在 C 语言编程中实现动态数组对象

    对于习惯使用高级语言编程的人来说,使用 C 语言编程最头痛的问题之一就是在使用数组需要事先确定数组长度. C 语言本身不提供动态数组这种数据结构,本文将演示如何在 C 语言编程中实现一种对象来作为动态 ...

  6. 你不知道的this—JS异步编程中的this

    Javascript小学生都知道了javascript中的函数调用时会 隐性的接收两个附加的参数:this和arguments.参数this在javascript编程中占据中非常重要的地位,它的值取决 ...

  7. http服务&ajax编程

    http服务&ajax编程 1.服务器 前言:通俗的讲,能够提供某种服务的机器(计算机)称为服务器 1.1.服务器类型 按照不同的划分标准,服务可划分为以下类型: 按服务类型可分为:文件服务器 ...

  8. AJAX编程模板

    AJAX一直以来没怎么接触,主要是做JSON数据在服务器和客户端之间传递的时候,被玩坏了,对它莫名的不可爱,最近心理阴影小了,于是又来看看它....... AJAX即“Asynchronous Jav ...

  9. 01HTTP服务&AJAX编程

    HTTP服务&AJAX编程 一.服务器         1. 什么是服务器? 能够提供某种服务的机器(计算机)称为服务器. 2.服务器的分类:              1.按系统分类:Lin ...

随机推荐

  1. Fish入门

    安装以及配置 Linux和OS X基本都可以通过源来安装,实在不行就下载源码编译,不难的. 安装好第一步是修改OS默认shell: chsh -s /usr/bin/fish 然后就可以直接使用了,就 ...

  2. HDU 1300

    http://acm.hdu.edu.cn/showproblem.php?pid=1300 这题大一就看到过,当时没读懂题目,今天再做就容易多了 题意:升序给出n个珍珠的的数量和价值,问买这些珍珠的 ...

  3. 【函数】oracle translate() 详解+实例

      一.语法: TRANSLATE(string,from_str,to_str) 二.目的 返回将(所有出现的)from_str中的每个字符替换为to_str中的相应字符以后的string.TRAN ...

  4. html 遇到margin居中的问题

    今天在写div时发现不居中, div{ margin:0 auto; } 那么给div一个固定的宽度,就会居中了 div{ margin:0 auto; width:500px; }

  5. winrar在右键菜单上加上:打包自动加上日期时间标签【图文教程】 - imsoft.cnblogs

    说明:  注册表HKEY_CURRENT_USER\Software\WinRAR\Profiles\0找到GenerateArcName修改0为1,修改GenerateMask为你想要的日期式(默认 ...

  6. SecureCrt 利用公匙登录L机取消密码登录。

    原理自不用多说了. 用SecureCRT生成一个公匙.密匙 把公匙传到多个L机上,然后就可以利用同一个私匙登录多个L机了. 密码都不用换.多轻松好使. SecureCRT-Tools-Create P ...

  7. Ionic基础——侧边栏ion-side-menus 以及ion-tap结合侧边栏详解

    一. 侧边栏菜单 : ion-side-menus 侧边栏菜单是一个最多包含三个子容器的元素: 默认情况下,侧边栏菜单将只显示ion-side-menu-content容器的内容. 向左滑动时,将显示 ...

  8. 使用Spring Aop验证方法参数是否合法

    先定义两个注解类ValidateGroup 和 ValidateFiled ValidateGroup .java package com.zf.ann; import java.lang.annot ...

  9. 推荐一些android开发学习的资料

    网址: 1:http://v.youku.com/v_show/id_XMTgwMTQ1MTgw.html 2:http://mars.apkbus.com/ 3:http://wenku.baidu ...

  10. HDU 1061 Rightmost Digit --- 快速幂取模

    HDU 1061 题目大意:给定数字n(1<=n<=1,000,000,000),求n^n%10的结果 解题思路:首先n可以很大,直接累积n^n再求模肯定是不可取的, 因为会超出数据范围, ...