1

次のフィドル: http://jsfiddle.net/Q9sHz/5/

<li>ID「test1::newtest」を持っています

ボタンを押して「Li Point1」を有効にすると、<li>要素 Li Point1 はドラッグできないままになりますが、フィドルのように ID から :: を削除すると、http://jsfiddle.net/Q9sHz/6/ をクリックするとドラッグ可能になりますボタン。

ID 内に「:」を含めることは許可されていませんか?

4

4 に答える 4

3

jQueryはコロンを使用してセレクターを構築します。たとえば$('.class:checked')または$('.class:hidden')

あなたはこのように結腸を脱出する必要があります

test1\\:\\:newtest

jQueryのFAQから

jQueryは要素の選択にCSS構文を使用するため、一部の文字はCSS表記として解釈されます。たとえば、最初の文字(azまたはAZ)の後のID属性では、文字、数字、ハイフン、およびアンダースコアに加えて、ピリオドとコロンを使用することもできます(W3C基本HTMLデータ型を参照)。コロン( ":")とピリオド( "。")は、それぞれ疑似クラスとクラスを示すため、jQueryセレクターのコンテキスト内では問題があります。

これらの文字をCSS表記ではなく文字通りに処理するようにjQueryに指示するには、文字の前に2つの円記号を配置して「エスケープ」する必要があります。

// Does not work
$("#some:id")

 // Works!
$("#some\\:id")

CSS表記で使用されている文字を含むIDで要素を選択するにはどうすればよいですか?

于 2012-06-08T12:59:49.560 に答える
1

jQuery-FAQを引用するには:

コロン (":") とピリオド (".") は、それぞれ疑似クラスとクラスを示すため、jQuery セレクターのコンテキスト内では問題があります。

これらの文字を CSS 表記としてではなく文字どおりに扱うように jQuery に指示するには、文字の前に 2 つのバックスラッシュを配置して「エスケープ」する必要があります。

ご覧のとおり、jquery-selector を使用してコロンをエスケープする必要があります\\この作業例を参照してください。

于 2012-06-08T12:58:46.783 に答える
1

動作デモ http://jsfiddle.net/Q9sHz/12/

これらの特殊文字をエスケープする必要があり\\:\\:ます。

コード

// when button clicked ...
$('#enable').click(function() {
    // also enable li tag with id test1
    $('#test1\\:\\:newtest').draggable('enable');
});

​
于 2012-06-08T12:58:52.053 に答える
0
// set draggable functionality to all li tags
$('.myLi').draggable();
// disable all li tags which have the class disable
$('.disable').draggable('disable');

// when button clicked ...
$('#enable').click(function() {
    // also enable li tag with id test1
    $('#test1newtest').draggable('enable');
});
于 2012-06-08T13:00:43.503 に答える