クリックしてdivコンテンツを非表示にする必要がある単純なアプリケーションを作成しようとしています。スパンやリストをクリックするたびにdivがクリックを観察しないという点を除いては問題ありません。この部門内のすべてのクリックを監視するにはどうすればよいですか?プロトタイプのオブザーバーを使用してdiv内のすべてのクリックを登録する方法
<div data-hour="16" data-minute="0" data-duration="1" class="even">
<span class="title" >block:</span> <span>4:00PM</span>
<div>
<ul>
<li>item 1</li>
<li>item 2</li>
</ul>
</div>
</div>
$$('#contents > div').each(function(item) {
item.observe('click', respondToClick);
});
あなたは間違いなしです。問題はvar element = event.element()でした。クリックされた要素に応じて異なる要素を返します。私は要素を補うことと調整することに失敗しました。 – maleki
@maleki:ああ!はい、イベントハンドラで、Prototypeは 'this'がイベントをフックした要素を参照し、' element.element() '(または引数なしの' element.findElement() ')が実際の要素を返しますクリックされたもので、同じものか子孫である可能性があります。 –