如何将函数添加到动态创建的Selectable(jqueryui)中

How to Add a function to a dynamically created Selectable(jqueryui)?

本文关键字:Selectable jqueryui 创建 动态 函数 添加      更新时间:2024-06-19

我试图动态地向可选择的jquery ui添加一个函数。我尝试动态生成可选列表,并为其分配了一个功能。当我点击列表时,myFUunction会弹出警报消息,但由于某种原因,它只适用于Firefox。chrome或IE中没有弹出警报。知道为什么它在chrome或IE上不起作用吗?

欢呼,

<html>
<head>
<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>
$document.ready(function() {
$("#myButton").button();
});
function generate(){   //generate a selectable list
$content=$("<ol id='selectable'>");
for (a=0;a<3;a++)
{
$content.append("<li class='ui-widget-content' onclick='myFunction()'>item"+a+"</li>");
}
$content.append("</ol>");
$("#myList").append($content);
$( "#selectable" ).selectable();
}
function myFunction()//simple alert msg
{
alert("Hello World!");
}
</script>
</head>
<body>
<div id='myList'/>
<div id='myText'/>
<button id="myButton" onClick="generate()">Generate List</button>
</body>
</html>

我发现您的代码有几个问题。

1:$document在哪里声明?我想你是指

$( document )

2:永远不应该在函数的全局空间中用声明变量。

$content=$("<ol id='selectable'>");

在全局范围中声明$content,而不是像您可能想要做的那样在函数内部

var $content=$("<ol id='selectable'>");

注意关键字"var"。

3:不要在HTML中使用内联事件,通过JavaScript绑定事件http://api.jquery.com/on/

4:我建议您使用jslint或jshint来检查JS代码中是否存在这些类型的错误。