それ自体がクリック可能なdiv内に編集可能な要素があります。x-editable アンカー要素をクリックするたびに、クリックによって DOM がバブルアップし、親 div のクリックがトリガーされます。どうすればそれを防ぐことができますか? jQuery でこれを停止できることはわかっていstopPropagation()
ますが、このメソッドをどこで呼び出すのでしょうか?
問題のある JSFiddle は次のとおりです: http://jsfiddle.net/4RZvV/。編集可能な値のクリックを複製するには、含まれている div がクリック イベントをキャッチすることがわかります。これは、x-editable ポップアップの任意の場所をクリックしたときにも発生し、それも防止したいと考えています。
lightswitch05 の回答後に編集
選択可能な複数の動的 DIV があるため、グローバル変数を使用できませんでした。.editable-click
代わりに変更されるアンカーに属性を追加しました。
editable-active
ポップアップが開いているかどうかを知るために使用されます
editable-activateable
代わりに、その.editable-click
アンカーをそのまま扱う必要があるかどうかを知るために使用されます
$(document).on('shown', "a.editable-click[editable-activateable]", function(e, reason) {
return $(this).attr("editable-active", true);
});
$(document).on('hidden', "a.editable-click[editable-activateable]", function(e, reason) {
return $(this).removeAttr("editable-active");
});
チェックはあなたが説明したのとほとんど同じです
$(document).on("click", ".version", function() {
$this = $(this)
// Check that the xeditable popup is not open
if($this.find("a[editable-active]").length === 0) { // means that editable popup is not open so we can do the stuff
// ... do stuff ...
}
})