1

私は純粋なJSでtodoリストWebアプリを作成しています(jQueryを使用しないようにしています!)。作成した要素にクリックハンドラーをアタッチするという1つの側面で苦労しています。作成コードは次のとおりです。

new_li = document.createElement('li');
new_li.innerHTML = item.value;
new_li.setAttribute('rel', time);
prependElement(tudu_list, new_li);

これは、ボタンをクリックすると発生します。

UL内のすべてのLIにクリックハンドラーをアタッチする必要があります。しかし、新しく作成したLIをクリックしても何も起こりません。要素にバインドされたクリックハンドラーがないという問題だと思います。jQueryでは通常.live()を実行しますが、JSではこの問題を回避する方法がわかりません。

4

2 に答える 2

3

<ul>イベントハンドラーを要素にアタッチしてから、イベントのtarget属性を確認します<li>。要素の1つである場合は、イベントハンドラーを実行します。それ以外の場合は、スキップします。

https://developer.mozilla.org/en/DOM/event.target

于 2012-05-31T23:36:43.850 に答える
0

1つの方法は次のとおりです。

function clickHandler(){
    // Do something...
}

new_li = document.createElement('li');
new_li.innerHTML = item.value;
new_li.setAttribute('rel', time);
new_li.onclick = clickHandler; // <===========
prependElement(tudu_list, new_li);

もちろんaddEventListener、インラインスクリプトの代わりに使用できます(使用する必要があります)。

new_li.addEventListener('click', clickHandler)
于 2012-05-31T23:28:41.620 に答える