我正在努力使第1项,第2项和第3项可供选择。
HTML:
<div id="container">
<ul id="outerUL"> //static
<li id="outerLI"> //dynamic
<ul id="innerUL"> //dynamic
<li>Item 1</li> //dynamic
<li>Item 2</li> //dynamic
<li>Item 3</li> //dynamic
</ul>
</li>
</ul>
</div>
jQuery的:
$("#outerUL").delegate('li','click',function(event) {
$(this).selectable();
});
我无法找出错误。
答案 0 :(得分:1)
首先交叉检查您是否拥有jQuery的正确版本并从here
下载代码问题
$("#outerUL").delegate('li','click',function(event) {
$(this).selectable();
});
是:
$(this).selectable();
只有当您点击li child
下的某些outerUL
时才会调用。因此,您的第一次点击不会选择任何元素,而只会让元素选择就绪。
第二个问题出现在这个html片段中:
<ul id="outerUL"> //static
<li id="outerLI"> //dynamic
<ul id="innerUL"> //dynamic
<li>Item 1</li> //dynamic
<li>Item 2</li> //dynamic
<li>Item 3</li> //dynamic
</ul>
</li>
根据您的javascript代码,每个#outerUL
子元素都应该是可选的。因此,第一次点击#outerUL
的所有子项时,将调用$(this).selectable();
语句,这将使子outerLI
可选。在随后的点击中,将调用jQuery的selectable()
函数,它将选择完整的outerLI
元素。
我认为这可以解决您的问题:
$(function () {
$("#innerUL").selectable();
});
只有#innerUL
的孩子可以选择。
答案 1 :(得分:0)
尝试jQuery on():
$(document).on('click','#outerUL li',function(event) {
$(this).selectable();
});
答案 2 :(得分:0)
在jQuery API documentation中,您可以阅读:
从jQuery 1.7开始,.delegate()已被.on()方法取代
您应该使用 jQuery.on()
$("#outerUL").on('click', 'li', function(event) {
$(this).selectable();
});
答案 3 :(得分:0)
试试这个:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Selectable - Default functionality</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<style>
#feedback { font-size: 1.4em; }
#selectable .ui-selecting { background: #FECA40; }
#selectable .ui-selected { background: #F39814; color: white; }
#selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
#selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
</style>
<script>
$(function() {
$( "#selectable" ).selectable();
});
</script>
</head>
<body>
<ol id="selectable">
<li class="ui-widget-content">Item 1</li>
<li class="ui-widget-content">Item 2</li>
<li class="ui-widget-content">Item 3</li>
<li class="ui-widget-content">Item 4</li>
<li class="ui-widget-content">Item 5</li>
<li class="ui-widget-content">Item 6</li>
<li class="ui-widget-content">Item 7</li>
</ol>
</body>
</html>
或Read Here。希望你喜欢!
答案 4 :(得分:0)
你不需要任何功能只需选中 FIDDLE
$(function () {
$("#selectable").selectable();
$('#btn').click(function(){
$('#selectable').append('<li class="ui-widget-content">XXX</li>')
})
});
HTML
<ol id="selectable">
<li class="ui-widget-content">Item 1</li>
<li class="ui-widget-content">Item 2</li>
<li class="ui-widget-content">Item 3</li>
<li class="ui-widget-content">Item 4</li>
<li class="ui-widget-content">Item 5</li>
<li class="ui-widget-content">Item 6</li>
<li class="ui-widget-content">Item 7</li>
</ol>
<input type="button" id="btn" value="ADD" />