I'm using jQuery to created a linked TOC that appears in a dialog box. The function I wrote to do so finds all the h4
's in the page and
- gives them
id
s to link to - adds some numbering display info
- clones them
- turns the clones into
li
s - wraps the inner text in anchor tags
- finds the anchors adds a click function to the anchors to close the dialog
- adds
title
s andhref
s to the anchors so the links point to the originalh4
s - goes back to the
li
s - appends the
li
s to aol
the in dialogdiv
However, in IE7, the cloned h4
s are not getting turned in li
s. Works in FireFox. In IE7, everything happens as it does in FireFox, just that the the .replaceWith()
is seemingly ignore... why?
Looks like this:
$('#content h4').each(function(index) {
index = index + 1;
$(this)
.attr('id', 'tutorial_' + index)
.before(function() {
return '<div class="how_to">HOW TO<div><span>' + index + '</span></div></div>';
})
.clone()
.replaceWith("<li>" + $(this).text() + "</li>")
.wrapInner("<a></a>")
.find('a')
.click(function(){
$("#dialog").dialog("close");
})
.attr({
'title': 'jump to ' + $(this).text(),
'href': '#tutorial_' + index
})
.end()
.appendTo('#dialog ol')
});
In action at: http://f1shw1ck.com/jquery_sandbox/tutorials.html