2013-12-12 22 views
0

我用jqueryui可選列表創建了一個簡單的腳本。我生成一個可選列表併爲每個列表分配一個onclick函數。看起來,點擊列表時,onclick事件沒有被觸發。任何想法來解決這個問題?如何在列表上使用onclick事件(jqueryui-selectable)?

感謝,

我的腳本:

$(document).ready(function() { 
$("#myButton").button(); 
}); 

function generate(){ 
var $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() 
{ 
alert("Hello World!"); 
} 

我的風格:

#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; } 

我的html:

<div id='myList'/> 
<button id="myButton" onClick="generate()">Generate List</button> 

回答

1

由於元素動態創建的,它需要被委派。您可以通過jQuery的做到這一點:

$(document).on("click",".ui-widget-content", myFunction()); 

(或者只是使用匿名函數)

$(document).on("click",".ui-widget-content", function() { 
    alert("Hello World!"); 
}); 
1

您應該使用selecting事件。 看到這裏的例子 http://jsfiddle.net/Pa4NK/

+0

我有另一個問題。其實我想要將列表生成的變量'a'值傳遞給myFunction。例如myFunction將如下所示: function myFunction(msgNo) alert(msgNo); } 是否可以做到這一點? –

+0

這是正確的選擇。例如,您有選擇和取消選擇事件(http://api.jqueryui.com/selectable/) –

相關問題