1

親がダブルクリックされると編集可能になることを意図した要素がページにあります。のようなもの:

<div id="parent"><p class="editable"> enter text here </p></div>

そして、私#parentdblclicked属性contenteditableをtrueに変更します。

問題は、 contenteditable がオンになると、ユーザーがテキストを編集できないようにする2つのことがあるということです。私がそれを行うunbind()と、この部分は解決されます(しかし、私はそれをしたくありません!) 2)このコードを使用して、ページでのテキスト選択を無効にします:

function disableSelection(target){
    if (typeof target.onselectstart!="undefined") //IE route
        target.onselectstart=function(){return false}
    else if (typeof target.style.MozUserSelect!="undefined") //Firefox route
        target.style.MozUserSelect="none"
    else //All other route (ie: Opera)
        target.onmousedown=function(){return false}
    target.style.cursor = "default"
} 

そして、次を使用して編集可能な要素を除外しようとしました:

disableSelection($(":not(.editable)").get(0));

しかし、ページ内のすべてを無効にしているようです。それを取り除くと、問題の残りの半分が解決します。編集を有効にしたい場合は、親からすべてのイベントをバインド解除し、disableSelection を取り除く必要がありますが、これは私には不可能です。

これを修正する方法について誰か考えがありますか? 解決策は私が思っているよりも簡単なはずですが、私は今自分自身を混乱させているだけだと思います!

4

1 に答える 1

1

jQuery UI .draggable() および .resizable() には、含まれている要素がドラッグをトリガーしてはならないキャンセル プロパティがあります。

http://jqueryui.com/demos/draggable/#option-cancel

無視する必要があるのはその2つだけですか?

于 2012-08-23T16:13:27.393 に答える