У меня есть сортируемый список (пользовательский интерфейс jQuery), который я хочу отсортировать программно, используя идентификаторы элементов «li». (это все числа).
Для этого я сделал эту функцию:
function resetList()
{
var orderedItems = new Array();
var unorderedItems = $("#sortable").find('li');
for(var i = 0; i < unorderdItems.length; i++)
{
var counter = 0;
var check = false;
do {
if(unorderedItems[counter].id == (i+1))
{
check = true;
orderedItems.push(unorderedItems[counter]);
}
counter++;
} while (!check && counter < unorderedItems.length);
}
$("#sortable").empty().html(orderedItems);
}
Я думаю, что это работает довольно хорошо (я новичок в javascript, поэтому я не знаю, является ли этот код «профессиональным»)
Проблема в том, что после того, как я вызвал функцию, события jQuery hover или mouseover больше не срабатывают (ранее работали)
Содержимое моих элементов "li":
<li class="ui-state-default">
<div class="image" style=\"height:100%; width:100%;">
<img class="overlay" src="img/pic.png" height="200" width="200" style="height:200px; width:200px; visibility:hidden;" />
</div>;
</li>
JavaScript:
$(".image").hover(function(e)
{
//make overlay visible
}, function(e)
{
//hide overlay
});
Любые идеи, почему функция наведения не работает после того, как я вызвал resetList()?
Извините за плохой английский и спасибо за любую помощь!
-Ник
hover
, и воссоздаете его. Я предполагаю, что, поскольку вы уничтожаете все эти элементы с помощью своего.empty()
, вам придется повторно применить любой код, который вы используете, чтобы применить функцию наведения в первую очередь. - person Jared   schedule 31.07.2012.live()
уже давно устарела..on()
для jQuery 1.7+, иначе.delegate()
. - person Anthony Grist   schedule 31.07.2012