#javascript #jquery
#javascript #jquery
Вопрос:
Привет, у меня проблема (не совсем проблема, я ее решил, но это, по крайней мере, очень интересно) с различным поведением селекторов jquery в IE (7-8), мобильной Opera и других браузерах.. Вот мой пример
<div id="galleryEl"><link href="http://designclub.cz/plugins/content/plugin_jw_sig/sig.css" rel="stylesheet" type="text/css">
<style type="text/css">.sig_cont {width:30px;height:20px;}</style>
<script type="text/javascript" src="http://designclub.cz/plugins/content/plugin_jw_sig/mootools.js"></script>
<script type="text/javascript" src="http://designclub.cz/plugins/content/plugin_jw_sig/slimbox.js"></script>
<div class="sig"><div class="sig_cont"><div class="sig_thumb"><a href="http://designclub.cz/images/stories/hp/hp-falper.jpg" rel="lightbox[sig0]" title="amp;<bamp;>hp-falper.jpgamp;</bamp;>" alt="hp-falper.jpg" target="_blank"><img src="http://designclub.cz/plugins/content/plugin_jw_sig/showthumb.php?img=hp/hp-falper.jpgamp;amp;width=0amp;amp;height=0amp;amp;quality=0">
Извините за форматирование 🙂
Проблема заключается в следующем..Когда я использую этот селектор jQuery("#galleryEl .sig_thumb a").eq(index);
(индекс на самом деле является целым числом) в основных современных браузерах, он просто работает.. но в IE (7-9) (6 я не тестировал) это не так..Когда я заглядываю в консоль разработчика IE, похоже, что результирующий объект является каким-то простым объектом dom???Я действительно не уверен, не настолько опытен в js, но это так кажется 🙂 Когда я меняю jQuery(".sig_thumb a").eq(index);
, он выбирает правильный элемент dom..Разметка такая странная, потому что это плагин joomla, я использую его для динамического создания фоновых слайд-шоу в соответствии со структурой папок..Итак, кто-нибудь знает, откуда происходит это странное поведение? И второй вопрос..Я действительно хочу сделать это эффективным, так какой тип селектора является лучшим в этом случае?Я знаю, что при выборе по id jQuery использует собственный метод js, то же самое в случае tagName и так далее, Но я действительно не уверен, как насчет комбинаций, если это селекторы (лучше ли использовать id-tag-class-someOtherStuff или id-class-someOtherStuff, id-someOtherStuff {в случае, если между id и результирующим объектом много других элементов DOM }) Спасибо за вашу помощь
Ответ №1:
Убедитесь, что существует только 1 элемент с идентификатором «galleryEl» . Если их несколько, выбор первой или последней зависит от версии IE и режима совместимости.
пример для тестирования:
<script type="text/javascript">
jQuery(
function($)
{
alert('Found:' jQuery("#someID .someclass").eq(1).text());
}
);
</script>
<div id="someID"><span class="someclass">1</span></div>
<div id="someID"><span class="someclass">2</span><span class="someclass">3</span></div>
Комментарии:
1. спасибо, в этом суть.. Я не знаю, почему это возможно, может быть, что-то странное в моей конфигурации Joomla?? Но один и тот же идентификатор встречается там действительно два раза ..:) И первый элемент пуст, следовательно, обычный объект DOM:D