#javascript #jquery
#javascript #jquery
Вопрос:
У меня есть следующий скрипт, который сдвигает контейнер вниз, а другой вверх, и наоборот, в зависимости от состояния закрытых / включенных переменных.
Скрипт отлично работает в Firefox, однако в IE и Chrome он просто не работает: (
Может кто-нибудь посоветовать?
Большое спасибо! вот скрипт.
(OCH var принимает высоту контейнера, в который элементы загружаются через ajax, поэтому он знает, когда его снова открывать, на сколько пикселей открывать — это лучший способ?)
$(document).ready(function()
{
//Grab the height of the container after its loaded with all the calls in...
var och = $('#calls').height();
//Are we allowed to close this panel yet?
var enabled = false;
//is the panel closed or not?
var closed = false;
$(".survey-description").click(function () {
if (enabled == true) {
if (closed == false) {
$(this).closest("#calls").stop().animate({"height": "44px"}, "fast");
closed = true;
}
else {
$(this).closest("#calls").stop().animate({"height": och}, "medium");
closed = false;
}
}
});
$(".linktoCall").click(function () {
if (closed == false) {
//Now we can toggle the top panel...
enabled = true;
$(this).closest("#calls").stop().animate({"height": "44px"}, "fast");
closed = true;
}
});
});
РЕДАКТИРОВАТЬ вот некоторые html отображаемых элементов.
<div id="survey-description"></div>
<div id="calls">
<div>
<p onclick="showCall('tgkn5xabgnivkaf');" id="notstarted" class="linktoCall">59677 tgkn5xabgnivkaf<br>NOT STARTED - SAVED</p>
</div>
</div>
<div id="aCall">
</div>
Комментарии:
1. «не работает» — не лучшее описание проблемы — вам нужно быть более конкретным в отношении того, что работает, а что нет. Вы получаете какие-либо сообщения об ошибках в консоли разработчика?
2. Он не скользит вверх и вниз? Вот как это не работает. Он остается статичным. Ошибка, которую я получаю в chrome dev tools
3. «Неперехваченная ошибка типа: не удается прочитать свойство ‘length’ null»
4. Где находится элемент с классом
survey-description
?5. Переиздано. это просто кнопка div над всеми остальными.
Ответ №1:
Глядя на фрагмент HTML, я думаю, это должно быть
<div class="survey-description"></div>
потому что селектор $('.survey-description')
ссылается на класс, а не на идентификатор.
Ответ №2:
В основном это быстрое предположение, поскольку я не знаю структуру html, о которой идет речь, и у меня нет времени проверять остальное, но если есть конфликтующие идентификаторы элементов (например, два элемента с идентификатором «вызовы»), разные браузеры будут вести себя по-разному. Поэтому проверьте, проверьте ли это, чтобы убедиться, что это не проблема.
(Кроме того, используйте === в сравнениях вместо ==)
Ответ №3:
это может не сработать, если ваш html-код недействителен … и я уверен, что вы не закрыли div или что-то в этом роде…
Вы можете проверить здесь свою страницу: http://validator.w3.org /
Пожалуйста, также удалите только для проверки значение «px» из
animate({"height": "xxpx"} ...
и пусть это
animate({"height": 25}...
Комментарии:
1. Удалены px и «», которые отлично работают в FF, однако в Chrome / IE все то же самое. 🙁