2

DOM がロードされた後、jquery を使用してその場で箇条書きを追加および削除しています。

正常に動作する箇条書きを追加するコードは次のとおりです。

// add bullet
$('#linkedEventList ul').append('<li id=' + datum._id + '>' + datum.headline + ' <a href=javascript:; title=delete onclick=remove(this) class=itemDelete>(x)</a> <a href=/events/' + datum._id + '>(open)</a></li>');

クリックされた箇条書きを削除するコードは次のとおりです。これは Firefox では正常に動作しますが、Chrome では正しく動作しません。Chrome では、親または li ではなく、ハイパーリンクが削除されます。

// remove bullet
//$(link).closest('li').remove();
$(link).parent().remove();

上記のいずれの方法も FireFox では正常に機能しますが、Chrome ではどちらも機能しません。解決策に関するアイデアはありますか?

jsfiddle: http://jsfiddle.net/jjgelinas77/CsAJn/14/

4

4 に答える 4

4

提供された回答を組み合わせて使用​​しました。

私はliのonclickを削除し、代わりにクリックされているクラスを参照し、以下のように「this」と組み合わせました。

$('#linkedEventList').on('click', '.itemDelete', function(){
$(this).parent().remove();
});

FireFox と Chrome の両方で動作する jsfiddle は次のとおりです: http://jsfiddle.net/jjgelinas77/CsAJn/27/

于 2013-06-26T15:56:36.253 に答える
2

ってことじゃない?

$(this).parent().remove();

また、検討したいことがあります

$(this).closest('li').remove();

li が見つかるまで DOMtree を上っていきます。アンカーを別の要素でラップすると、最後の例ではブレーキがかかりません:)

于 2013-06-26T14:48:54.300 に答える