跟随小提琴:http://jsfiddle.net/Q9sHz/5/
我有<li>
,ID为“test1 :: newtest”
当我按下按钮 - 启用'Li Point1'时,<li>
元素Li Point1仍然是不可拖动的,但如果我从id中移除::,如同小提琴:http://jsfiddle.net/Q9sHz/6/
单击按钮时,它变得可拖动。
不允许在ID中使用':'吗?
答案 0 :(得分:3)
jQuery使用冒号来构建选择器。例如$('.class:checked')
或$('.class:hidden')
你需要像这样逃避冒号
test1\\:\\:newtest
来自jQuery常见问题解答
因为jQuery使用CSS语法来选择元素,所以某些字符被解释为CSS表示法。例如,除了字母,数字,连字符和下划线之外,在首字母(a-z或A-Z)之后的ID属性还可以使用句点和冒号(请参阅W3C基本HTML数据类型)。冒号(“:”)和句点(“。”)在jQuery选择器的上下文中是有问题的,因为它们分别表示伪类和类。
为了告诉jQuery从字面上处理这些字符而不是CSS符号,必须通过在它们前面放置两个反斜杠来“转义”它们。
// Does not work
$("#some:id")
// Works!
$("#some\\:id")
How do I select an element by an ID that has characters used in CSS notation?
答案 1 :(得分:1)
冒号(“:”)和句点(“。”)在jQuery选择器的上下文中是有问题的,因为它们分别表示伪类和类。
为了告诉jQuery从字面上处理这些字符而不是CSS符号,必须通过在它们前面放置两个反斜杠来“转义”它们。
如您所见,您必须使用\\
来转义jquery-selector中的冒号。见this working example。
答案 2 :(得分:1)
工作演示 http://jsfiddle.net/Q9sHz/12/
你需要逃避这些特殊字符\\:\\:
才能为你做到这一点。
<强>码强>
// when button clicked ...
$('#enable').click(function() {
// also enable li tag with id test1
$('#test1\\:\\:newtest').draggable('enable');
});
答案 3 :(得分: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');
});