次のフィドル: http://jsfiddle.net/Q9sHz/5/
<li>
ID「test1::newtest」を持っています
ボタンを押して「Li Point1」を有効にすると、<li>
要素 Li Point1 はドラッグできないままになりますが、フィドルのように ID から :: を削除すると、http://jsfiddle.net/Q9sHz/6/
をクリックするとドラッグ可能になりますボタン。
ID 内に「:」を含めることは許可されていませんか?
次のフィドル: http://jsfiddle.net/Q9sHz/5/
<li>
ID「test1::newtest」を持っています
ボタンを押して「Li Point1」を有効にすると、<li>
要素 Li Point1 はドラッグできないままになりますが、フィドルのように ID から :: を削除すると、http://jsfiddle.net/Q9sHz/6/
をクリックするとドラッグ可能になりますボタン。
ID 内に「:」を含めることは許可されていませんか?
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")
jQuery-FAQを引用するには:
コロン (":") とピリオド (".") は、それぞれ疑似クラスとクラスを示すため、jQuery セレクターのコンテキスト内では問題があります。
これらの文字を CSS 表記としてではなく文字どおりに扱うように jQuery に指示するには、文字の前に 2 つのバックスラッシュを配置して「エスケープ」する必要があります。
ご覧のとおり、jquery-selector を使用してコロンをエスケープする必要があります\\
。この作業例を参照してください。
動作デモ http://jsfiddle.net/Q9sHz/12/
これらの特殊文字をエスケープする必要があり\\:\\:
ます。
コード
// when button clicked ...
$('#enable').click(function() {
// also enable li tag with id test1
$('#test1\\:\\:newtest').draggable('enable');
});
// 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');
});