0
javascriptのない要素にクラスを追加しようとしています。ボタンをクリックしたときに発生する関数を定義しましたが、ページを読み込むと、指定されたクリックイベントではなく、onloadイベントを使用してクラスが即座に追加されます。これはwierdです。loadイベントがクリックイベントの代わりに私の関数を呼び出すようになっています
<div id="div1" class="mydiv">A DIV</div>
<input type="button" id="btn" value="click">
#div1 {
width: 150px;
height: 100px;
background-color: red;
position: relative;
transition: top, left 0.43s 0.56s ease-in-out;
}
.move {
top: 200px;
left: 450px;
transition: top, left 0,4s 0.58s ease-in-out;
}
function ulterClass (el, newClass) {
var currentClass = el.getAttribute('class');
if (typeof currentClass!== 'undefined' && currentClass) {
el.setAttribute('class', currentClass + ' '+ newClass);
}else{
el.setAttribute('class', newClass);
}
}
var div = document.getElementById('div1');
var btn = document.getElementById('btn');
function ulterClass (el, newClass) {
var currentClass = el.getAttribute('class');
if (typeof currentClass!== 'undefined' && currentClass) {
el.setAttribute('class', currentClass + ' '+ newClass);
}else{
el.setAttribute('class', newClass);
}
}
var div = document.getElementById('div1');
var btn = document.getElementById('btn');
btn.addEventListener('click', ulterClass(div, 'move'));
私はaddEventListenerを使用する場合、関数はできるだけ早く走っこれを参照してください。私はhaventボタンをクリックしたにもかかわらず、ページのloaded.the関数が実行されますが、それは動作します関数がHTMLを介してインラインで追加されたときにうまくいきます。属性onclick – pedroyanky
これは 'addEventListener'のためではありませんでした。これは' ulterClass(div、 'move'); 'のためです。 addEventListenerの使い方を示すために私の答えを更新します。 – Nisarg
非常に助けてくれてありがとうございます – pedroyanky