2016-05-20 6 views
-2

子供の代わりに親のdivだけを選択する可能性があるかどうかを知りたいと思います。簡単な例として、このようになります:Event.target。子供の代わりに親を選択

<!DOCTYPE html> 
<html> 
<body onclick="myFunction(event)"> 
    <div style="border: solid black 2px"> 

    <p>Click on a paragraph. An alert box will alert the element 
     that triggered the event.</p> 

    <p><strong>Note:</strong> The target property returns the element that 
     triggered the event, and not necessarily the eventlistener's element.</p> 
</div> 
<script> 
    function myFunction(event) { 
    alert(event.target.nodeName); 
    } 
</script> 
</body> 
</html> 

は、私が欲しいものは、私は(それがPラベル上にある場合は気にしない)、DIVをクリックしてdiv要素がクリックされたMSGを受け取るしたい、簡単です。 pラベルをクリックすると、p msgが表示されます。

実際、pラベルの代わりにdivを選択しようとしています。たとえば、すべての色を変更するなどです。皆さん、ありがとうございました。

+0

http://stackoverflow.com/questions/2728252/jquery-stoppropagation-bubbleを試みることができますまたはあなたはpタグのポインタイベントを削除するためにCSSを使うことができます – Pete

答えて

0
function myFunction(event) { 
alert(event.target.parentNode.nodeName); 
} 

この

+0

ありがとう、それは私が欲しかったことです! – Metxaniz

0
$('div').on('click', function(event) { 
    alert(event.target.nodeName); 
}); 

この場合、任意のdivをクリックするだけで、nodeNameに警告が表示されます。

あなたがやったやり方は、ドキュメント全体をクリックしたときに、その要素をターゲットとして取得するということです。だから、divの中でpをつかむかもしれない。

+2

説明はありませんか? – DontVoteMeDown

+1

これは実際の質問には答えません。 – Jai

+0

男にチャンスを与えます。私は提出し、自分自身を実現しました。 – Hazonko

0

イベントが任意の要素に発生する可能性があり、そしてあなたがevent.target上の特定の祖先要素を探したい場合は、継承チェーンを歩く必要がある

event.target.parentName 

を使用して、親要素を選択します。または、jqueryを使用します。これにはそのためのメソッドがあります。あなたの場合は、例のように単純な場合

して、あなただけの

if (event.target.tagName == "DIV") return event.target; 
if (event.target.parentName.tagName == "DIV") return event.target.parentName; 
+0

event.target.parentName.nodeName、okありがとうございました! – Metxaniz

+0

"ありがとうございました"のためにアップボートボタンを使用してください – C14L

関連する問題