2016-09-18 5 views
0

div要素があり、デフォルトの色を設定しています。アクティブになると色が変わります。したがって、マウスをクリックすると、色が赤に変わります。私はまた、DOMが準備ができているときにクリックイベントを引き起こしています。しかし、私がクリックイベントをトリガーするときの振る舞いは同じではありません。要素は色を変えず、消えます。それを達成する最良の方法は何ですか?Javascriptを使用してクリックイベントをトリガーして要素をアクティブにする方法はありますか?

ここにjsfiddle:https://jsfiddle.net/uvcwxLjr/があります。

var ele = document.querySelector('.clickMe'); 
ele.addEventListener('click', function() { 
    alert('You\'ve clicked me'); 
}); 
ele.click(); 

私はそれが背景赤を持っているし、マウスダウンとは、ときにマウスアップを削除するとことを追加し、別のクラスを作成することによって行うことができます知っています。より良い方法がありますか?

+1

なぜ、CSSの「アクティブ」状態のトリガーがクリックイベントからプログラムではないのかと疑問に思っていますか? – j08691

+0

イベントハンドラの要素に「アクティブ」クラスを追加し、CSSを変更する必要があります。 .clickMe:active { 背景色:緑; } は: です.clickMe.active { 背景:緑; } コロンを使用したcssセレクタが正しくありません。 – klikas

+1

DIVをアクティブにすることはできません。これは、アンカーやボタンなどの特定のタイプの要素にのみ適用されます。 – Barmar

答えて

0

$(function() { 
 
$(".clickMe").click(function() { 
 
    $(this).css('background-color', 'green'); 
 
    alert('change green'); 
 
    }); 
 
}); 
 
.clickMe { 
 
    width: 100px; 
 
    height: 100px; 
 
     background-color: red; 
 
     }
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> 
 

 
<div class="clickMe"> 
 
</div>

+0

クリックすると緑色になります。それは目的ではありません。 –

+0

あなたは赤でそれを戻したいですか? –

+0

はい。しかし、マウスダウンイベントやマウスアップイベントを聞くことでそれを行うことができます。それはポイントではありません。重要な点は、実際にマウスを使用してクリックするのとは対照的に、プログラムによるクリックをトリガするときに動作が異なる理由は何ですか? –

0

'警告' 機能は、ブラウザ(more info)のUIスレッドをブロックする、換言すれば、alertは赤色で描画するDIVを遮断しました。

var ele = document.querySelector('.clickMe'); 
ele.addEventListener('click', function() { 
console.log('You\'ve clicked me'); 
}); 
ele.click(); 
+0

私は同意します。しかし、要素に移動してをクリックします。同じ動作ではありません。私たちが議論しているのは、Javascriptでトリガーされたクリックを手動でクリックすることです。彼らはなぜ異なっているのですか? –

関連する問題