0

私のプロジェクトでは、html5 CMSを作成する必要があります。私の問題は、重複する要素の要素をどのようにターゲットにするかです。お気に入り

<div id='L1'>
  <!--some text -->
  <div id='L2'>
    <!--some text -->
    <div id='L3'>
         <!--some text -->
    </div>
    <div id='L4'>
         <!--some text -->
    </div>
  </div>
</div>

L1、L2、L3、L4をターゲットにします。ここで問題が発生します。$(L1、L1 *)を使用して、L1の各要素をターゲットにし、L1を含め、それらの「クリック」イベントハンドラーをバインドできます。

しかし、L4とすると、L4の内容だけでなく、L1とL2も出てきます。その要素だけが含まれているのを見たいのですが、の親は必要ありません。どうすればよいですか?

更新:ajaxを介してテンプルコンテナをロードし、それらのイベントハンドラーをバインドします

$('#load_area').load(file,function(){
$('#load_area *').click(
    function(){
        $('#edit_area').append($(this).html());//display what I have clicked
    }
);
});
4

1 に答える 1

2

コードがこのように動作している理由は、イベントがDOMをバブリングしているためです。この動作を防ぐには、次のいずれかを実行できます。

$('#load_area').load(file,function(){
$('#load_area *').click(
    function(event){
        event.stopPropagation();
        $('#edit_area').append($(this).html());//display what I have clicked
    }
);
});

また

$('#load_area').load(file,function(){
$('#load_area *').click(
    function(){
        $('#edit_area').append($(this).html());//display what I have clicked
        return false; //event.stopPrpagation() + event.preventDefault()
    }
);
});
于 2012-07-16T07:11:06.677 に答える