Поскольку у меня нет вашего XML для тестирования, я выхожу на конечность и говорю, что проблема в дополнительных символах \')"
, которые есть в вашем HTML-коде:
Измените эту строку:
$('<li><a href="#lightssubmenu" onclick="lightdata()" \')">'+lightname+'</a></li>').appendTo('#lightitems');
На это:
$('<li><a href="#lightssubmenu" onclick="lightdata()">'+lightname+'</a></li>').appendTo('#lightitems');
Кроме того, вы должны изменить способ обработки событий и прикрепить их вне встроенного обработчика onclick
.Вот ваш код, немного сдвинутый:
$(document).ready(function(){
var lightItems = $('#lightitems');
lightItems.delegate('a','click', function(e){
e.preventDefault();
lightdata();
})
$.ajax({
type: "GET",
url: "list.xml",
dataType: "xml",
cache: false,
success: function(xml) {
$(xml).find('Lights>Light').each(function(){
var lightname = $(this).attr('Name');
lightItems.append('<li><a href="#lightssubmenu">'+lightname+'</a></li>');
});
}
});
});
function lightdata()
{
alert("entered lightdata");
}
Примечание: для этого требуется jQuery 1.4.2 +