XAJAX学习笔记(二)

学习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();来实现同样的功能的,不过我这样写要简单一些,至少到目前没有问题。

看实例

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 *