XAJAX学习笔记(二)

Written by

in

学习XAJAX第二天,有两点体会,和大家共享一下。

第一,关于addAssign中修改一个块属性的问题。

假定我有一段HTML代码如下:

<div id=div01 class=en-us>This line will be changed.</div>

通常我们想在程序中通过一个操作(通常是一个按钮或一个超级链接)来改变其外观,如文本内容、字体、颜色、大小等。如果你对CSS比较熟悉,可能会这样做:

$resp->addAssign(div01, style.color, #0066cc);
$resp->addAssign(div01, style.font-size, 36px);

如果你也是这么做的,那么你会发现在触发该异步处理时,只有字体的颜色被改变,而字体的尺寸没有改变。 为什么会这样呢?这是因为JavaScript的对象模型中的属性命名和CSS中的 属性命名是不一样的,例如:CSS中的font-size在JavaScript中要被称为fontSize,而background-color要被称为backgroundColor……

应该说还是有一点规律可寻的,无非是将破折号后的第一个字母改为大写并去掉破折号即可。

如果你需要一个比较完整的CSS-JS属性映射关系,可以参见这里

不过上面的列表中还是漏了一个很重要的属性,也就是一个HTML标记的class属性。既然我们想到要修改一个HTML块的颜色、字体、字体尺寸等等等等,为什么不使用CSS样式表来实现呢? 如果你这样写代码:$resp->addAssign(div01, class, zh-cn);是不会有效果的,因为class不是一个合法的JavaScript属性,应该改成这样才可以:$resp->addAssign(div01, className, zh-cn);

看实例

第二,关于使用<a href>来触发异步调用

在XAJAX的演示中,通常用一个按钮来实现。但是这需要额外增加一个可能不是必需的表单。于是,我更偏好用<a href>这样的一个超链接来实现。这个就比较简单了,只要设置href=#,并指定onclick函数,同时设定return false即可。我看到有些代码是用 javascript.void();来实现同样的功能的,不过我这样写要简单一些,至少到目前没有问题。

看实例


Discover more from 生活在远方

Subscribe to get the latest posts sent to your email.

Comments

One response to “XAJAX学习笔记(二)”

  1. GarykPatton Avatar

    You know so many interesting infomation. You might be very wise. I like such people. Don’t top writing.

Leave a Reply

Your email address will not be published. Required fields are marked *