Worked a treat that, Ie will be the death of me.
On Feb 10, 2:45 pm, Stephan Veigl <stephan.ve...@gmail.com> wrote: > Hi John, > > It looks like IE doesn't send a change event when the checkbox has > been clicked, only after the element has lost focus. You can test this > by adding a debug alert to your change function. > > change your > $("input:checkbox").change(function () {... > line to > $("input:checkbox").bind("change click keypress", function(){... > to catch the checkbox every time it has been clicked (either with > mouse or keyboard) > > by(e) > Stephan > > 2009/2/10 John C <j.cashm...@wigan.gov.uk>: > > > > > > > Has anyone any idea why the code below doesn't work correctly in IE. > > Basically what is supposed to happen is when the parent checkbox is > > checked the child ones are also supposed to be checked. This works > > fine in FireFox and Safari, but not in Internet Explorer, the child > > checkboxes only get checked when something else changes on the form, > > for instance you check another item. > > > Any help would be great. > > > --- > > <div id="navigation"> > > <ul> > > <li><a href="test.htm">Item > > </a> > > <ul> > > <li><a > > href="test.htm">Item</a></li> > > <li><a href="test.htm">Item > > </a> > > <ul> > > > > <li><a href="test.htm">Item</a></li> > > > > <li><a href="test.htm">Item</a></li> > > </ul> > > </li> > > </ul> > > </li> > > <li><a href="test.htm">Item > > </a> > > <ul> > > <li><a href="test.htm">Item > > </a> > > <ul> > > > > <li><a href="test.htm">Item</a></li> > > > > <li><a href="test.htm">Item > > > > </a> > > > > <ul> > > > > <li><a href="test.htm">Item</a></li> > > > > <li><a href="test.htm">Item</a></li> > > > > <li><a href="test.htm">Item</a></li> > > > > <li><a href="test.htm">Item</a></li> > > > > <li><a href="test.htm">Item</a></li> > > > > </ul> > > > > </li> > > </ul> > > </li> > > <li><a > > href="test.htm">Item</a></li> > > </ul> > > </li> > > </ul> > > </div> > > <script type="text/javascript" src="http://ajax.googleapis.com/ajax/ > > libs/jquery/1.3.1/jquery.min.js"></script> > > <script type="text/javascript"> > > > $(document).ready(function() { > > $("#navigation>ul>li>a").each(function () { > > $(this).before($(this).text()); > > $(this).remove(); > > }); > > > var checknum = 0; > > $("#navigation a").each( function () { > > checknum = checknum +1; > > newInput = document.createElement("input"); > > newInput.setAttribute("name","dchannel"+checknum); > > newInput.setAttribute("id","dchannel"+checknum); > > newInput.type = "checkbox"; > > newInput.value = $(this).attr('href').replace(/'/ig, "\'"); > > > $(newInput).insertBefore(this); > > $("#dchannel"+checknum).val($("#dchannel"+checknum).val().replace > > ("http://boston", "")); > > newLabel = document.createElement("label"); > > newLabel.setAttribute("for","dchannel"+checknum); > > newLabel.innerHTML = $(this).text(); > > $(newLabel).insertBefore(this); > > $(this).remove(); > > }); > > > $("input:checkbox").change(function () { > > > if($(this).attr("checked")) { > > > $(this).parents("li:first").find("input:checkbox").each(function () { > > > $(this).attr("checked", true); > > }); > > > } else { > > > $(this).parents("li:first").find("input:checkbox").each(function () { > > > $(this).attr("checked", false); > > }); > > > } > > }); > > }); > > </script> > > --- Hide quoted text - > > - Show quoted text -