javascript setAttribute 'className' работает onLoad, но не onClick - PullRequest
1 голос
/ 03 сентября 2010

Почему следующее работает для onLoad, а не для onClick, и какое будет решение? Заранее спасибо ...

<head>
    <title>Untitled Page</title>
    <LINK href=CSS/showdetails.css type=text/css rel=stylesheet />
</head>
<body OnLoad="javascript:showdetails()">

<script language=JavaScript src=js/showdetails.js type=text/javascript></script>

<div id="divResults" style="OVERFLOW: auto; HEIGHT: 480px;">
<span id="ShowResults" style="VISIBILITY: hidden">Display Results</span>
<p><input id="Button1" type="button" value="button" /></p>
</div>

<script type="text/javascript">

var btn = document.getElementById('Button1');
btn.onclick = function() {showdetails();};

function showdetails() {
    var xc = document.getElementById('ShowResults');

    var top_ul = document.createElement('ul');
    top_ul.setAttribute('className','detclass');


    var li1 = document.createElement('li');
    li1.appendChild(document.createTextNode('craig'));


    var ul2 = document.createElement('ul');
    var li2 = document.createElement('li');
    li2.appendChild(document.createTextNode('Mike'));

    ul2.appendChild(li2);


    li1.appendChild(ul2);
    top_ul.appendChild(li1);

    xc.appendChild(top_ul);

    var vis = "visible";
    xc.style.visibility = vis;
    }
</script>                 
</body>
</html>

1 Ответ

0 голосов
/ 03 сентября 2010

Где в вашем документе находится этот скрипт?Возможно ли, что элемент DOM, содержащий Button1, еще не загружен при выполнении этого скрипта?Вы можете попробовать поместить это в тег сценария после вашего тела, а не в голове, или обернуть его в функцию, которая затем выполняется в элементе onload.

РЕДАКТИРОВАТЬ: теперь, когда вопрос имеет теги кодаЯ вижу это в теге сценария.Я все еще рекомендую обернуть его в функцию и вызвать его с помощью onLoad, чтобы убедиться, что DOM полностью загружен перед выполнением сценария.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...