Я впервые использую аккордеон jQuery UI и думаю, что мне здесь чего-то не хватает. Я написал следующий код:
<div id="theAccordion">
<h2><a href="#">Header1</a></h2>
<div>old content 1</div>
<h2><a href="#">Header2</a></h2>
<div>old content 2</div>
<h2><a href="#">Header3</a></h2>
<div>old content 3</div>
<h2><a href="#">Header4</a></h2>
<div>old content 4</div>
<h2><a href="#">Header5</a></h2>
<div>old content 5</div>
</div>
<script type="text/javascript">
var map = {
Header1: function(jqObj) { jqObj.append("<p>new content 1</p>"); },
Header2: function(jqObj) { jqObj.append("<p>new content 2</p>"); },
Header3: function(jqObj) { jqObj.append("<p>new content 3</p>"); },
Header4: function(jqObj) { jqObj.append("<p>new content 4</p>"); },
Header5: function(jqObj) { jqObj.append("<p>new content 5</p>"); }
};
function accordionChange(event, ui) {
ui.newContent.empty();
eval("map." + ui.newHeader.text() + "(ui.newContent)");
}
$(function() {
$("#theAccordion").accordion({
change: function(event, ui) { accordionChange(event, ui); }
});
});
</script>
Код работает должным образом, он запускает функции карты, но к контенту аккордеона код не добавляется, потому что объект newContent кажется пустым все время.
Я отлаживал его с помощью инструментов отладки IE8, а jqObj.length равняется нулю, поэтому никаких изменений в новом контенте не производится.
у вас есть представление о том, что здесь происходит?
Заранее спасибо