Archive for the ‘浏览器’ Category

JQuery 对事件进行动态处理的一个问题

Tuesday, June 15th, 2010

对于以下代码:

<a id="link" onclick="alert('hello')" >link</a>
 
<script>
alert($('#link').attr('onclick'));
$('#link').attr('onclick', "alert('world')");
alert($('#link').attr('onclick'));
</script>

上面的代码会让原来的onclick事件失效。

<a id="link" onclick="alert('hello')" >link</a>
 
<script>
alert($('#link').attr('onclick'));
$('#link').attr('onclick', '').click(function(){alert('world')});
alert($('#link').attr('onclick'));
</script>

上面的代码能够实现绑定一个新事件,但是如果onclick的参数里面有this,这样也是不行的。

<a id="link" onclick="alert(this).text()" >hello</a>
 
<script>
alert($('#link').attr('onclick'));
$('#link').replaceWith('
<a id="link" onclick="alert($(this).text())">world</a>');
alert($('#link').attr('onclick'));
</script>

必须使用上面的代码才能正确得处理带有this的onclick属性。

问题的原因不是很清楚(不知道是JQuery的问题还是浏览器处理机制的问题),所以在使用Jquery的时候,应尽量避免在Dom操作的时候处理事件属性。

HTML元素介绍

Wednesday, April 9th, 2008

由Firefox谈开源软件

Sunday, August 12th, 2007

Firefox浏览器的历史

Tuesday, July 24th, 2007

我使用的FireFox扩展(20080215)

Wednesday, June 27th, 2007