I am using this probably ugly javascript to show a text box (in a li tag plus its label) if a checkbox is checked.
$(\"#li-2-21\").css(\"display\",\"none\");
Just call the function immediately upon defining it's function. Example:
$("#Languages-spoken-and-understood-8").click(function(){
if ($("#Languages-spoken-and-understood-8").is(":checked"))
{
$("#li-2-21").show("fast");
}
else
{
$("#li-2-21").hide("fast");
}
}).click();
Most concisely:
$(document).ready(function() {
$("#Languages-spoken-and-understood-8").change(function() {
$("#li-2-21")[$(this).is(":checked") ? 'show' : 'hide']("fast")
}).change();
});
EDIT : switched from click to change event
Extract your click function into a separate function (not inline) and run it on the load of the page:
function ToggleCheckbox() {
if ($("#Languages-spoken-and-understood-8").is(":checked"))
{
$("#li-2-21").show("fast");
}
else
{
$("#li-2-21").hide("fast");
}
}
$(function() {
$("#Languages-spoken-and-understood-8").click(ToggleCheckbox);
ToggleCheckBox();
});
If you want to clean it up a bit I'd extract the checkbox and languages element into separate vars:
var languages = $("#Languages-spoken-and-understood-8");
var checkbox = $("#li-2-21");
make sure you place them in the appropriate scope though. This will mean that jQuery doesn't need to keep requerying the DOM to find them.