#foo is wrapped with a div. When you click on it, a border should be added (this only works in IE 6 / 7 when using jQuery < 1.2) and an alert containing "Some text" should appear. This demo uses expandos, which appear to be removed when wrap is used.
jQuery 1.1.2 (works) | jQuery 1.2.1 (doesn't work) | jQuery 1.2.2 (doesn't work)
#foo #bar<script type="text/javascript">
$(document).ready(
function()
{
// #foo example (expandos)
var wrapper = document.createElement("div");
wrapper.sometext = "Some text";
wrapper.clickcss = {border: "2px solid #eee", padding: "6px"};
$("#foo").wrap(wrapper).click(
function(e)
{
e.preventDefault();
alert(this.parentNode.sometext);
$(this.parentNode).css(this.parentNode.clickcss);
}
);
// #bar example (no expandos)
var wrapper2 = document.createElement("div");
var sometext = "Some text";
var clickcss = {border: "2px solid #eee", padding: "6px"};
$("#bar").wrap(wrapper2).click(
function(e)
{
e.preventDefault();
alert(sometext);
$(this.parentNode).css(clickcss);
}
);
}
);
</script>