发现一个很奇怪的jQuery问题,郁闷了很久了。
发现一个很奇怪的jQuery问题,请教大家了:
var $a = $("<div>");var $b = $("<span>").html("bbb");$b.extend({ i : 123 });$a.extend({ $b : $b }); $b.appendTo($a);$a.appendTo(document.body);$a.$b.click(function(){ alert($(this).i); });
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script><script>window.onload=function(){ var $a = $("<div>"); var $b = $("<span>").html("bbb"); $b.extend({ i : 123 }); $a.extend({ $b : $b }); $b.appendTo($a); $a.appendTo(document.body); $a.$b.click((function(obj){ return function(){alert(obj.i)}; })($b));}</script>
[解决办法]
$a.$b.click((function(obj){ return function(){alert(obj.i)}; })($b));