Если они имеют одинаковые размеры, одна возможность состоит в том, чтобы нарисовать два изображения непосредственно друг над другом, а класс CSS :hover
для верхнего изображения, имеющего display: none;
. Таким образом, оба изображения будут предварительно загружены, но зависание сделает второй видимым.
Пойдите наоборот и использование insertAfter()
.
$("<div id='xxx'></div>")
.append($("#someotherdiv").clone())
.insertAfter("#somediv > ul")
Попытайтесь добавить свои сгенерированные узлы DOM к документу только после окончания Вашей работы.
После того как узлы добавляются к отображенному документу, браузер начинает слушать любое изменение для обновления представления. Выполнение всей работы прежде, чем добавить узлы к отображенному документу действительно улучшает производительность браузера.
используйте insertAfter ():
$("<div id='xxx'></div>").insertAfter("#somediv > ul").append($("#someotherdiv").clone())
Как я могу наиболее эффективно выбрать то промежуточное отделение, которое я добавил с "после" и поместил свой "#someotherdiv" в него?
Решением @Vincent является, вероятно, самый быстрый способ получить тот же результат. Однако, если по любой причине Вы должны добавить отделение с after()
затем должен выбрать его и воздействовать на него, можно использовать
.nextAll( [expr] )
Find all sibling elements after the current element.
Use an optional expression to filter the matched set.
Таким образом, Ваш js становится:
$("#somediv > ul")
.after("<div id='xxx'></div>")
.nextAll('#xxx')
.append($("#someotherdiv").clone());