今天,我在编写我的网站http://www.izfang.com时,为了能够不刷新切换“出租”和“求租”信息列表,我写了一段JavaScript代码,利用objElem.innerText属性动态改变了TD元素中的值。
当我想改变列表的鼠标点击链接时发现,由于我没有在每个TD元素中使用<a href=".....">...</a>标签,而是在整个TR元素的onClick属性中使用了"window.open('targetPage.asp')",这下我在做切换时遇上了难题:
如何动态改变这个TR元素的onClick事件?
一开始,我在JavaScript函数中直接给这个元素的onclick属性赋值:
...
<tr id="pRentClick">
<td>...</td>
</tr>
...
<script language="javascript">
pRentClick.onclick="window.open('targetPage.asp?id=1')";
</script>
运行后无反应,失败。
于是我开始上Google搜索查找方法,在一个英文的论坛上看到这样一个方法:
<script language="javascript">
pRentClick.setAttribe["onclick","window.open('targetPage.asp?id=1')";
</script>
运行后无反应,失败。
后来,终于在优快云的论坛上找到一篇文章:http://topic.youkuaiyun.com/t/20021129/09/1215091.html
这篇文章的楼主也遇到跟我一样的问题,我大致看了一下大家的回复,就改写上述代码如下:
<script language="javascript">
pRentClick.onclick=function("window.open('targetPage.asp?id=1')");
</script>
结果运行还是无反应,网页提示有错。
这下我不知所解了,为什么别人能运行的代码我却不能运行?
仔细对照我和论坛上的代码后,发现居然是function和Function两个相同英文单词的首字母大小写不一样。于是我将function改成Function大写,如下:
<script language="javascript">
pRentClick.onclick=Function("window.open('targetPage.asp?id=1')");
</script>
运行正常!