У меня есть следующий элемент списка:
<li>
<input value="someRadioButton" name="ctl00$mainContent$group" type="radio"
id="ctl00_mainContent_somelRadioButton" onclick="showSomeInfo()" />
<label for="ctl00_mainContent_someRadioButton">
<img class="extraPadding-Right-10" src="https://xxy.com/some_mark_37x23.gif" />
</label>
</li>
Таким образом, то, что обнаруживается, является переключателем и изображением рядом с ним. Когда я нахожусь в FireFox, Chrome, и Safari, нажимающий на то изображение, запускает showSomeInfo (), это указано в onclick радио. Я не уверен, почему я предполагаю, потому что это перенесено в маркировку, и та маркировка касается того переключателя....
Но так или иначе это не моя проблема. Мне нравится этот, когда Вы нажимаете на изображение, которым называют метод JavaScript showSomeInfo (). Но проблема состоит в том, что это работает во всех браузерах кроме IE 8. Если я открываю эту страницу в IE 8, нажимание на изображение ничего не делает, и я не уверен почему. Я экранирован в этом.
Причина, по которой это работает. в Firefox и др. это то, что должен делать
, когда у него есть атрибут «for», указывающий на поле ввода (по значению «id»). Если в IE это не работает, то это потому, что Microsoft либо по-другому интерпретировала стандарт, либо просто не смогла его правильно реализовать. (Я не вижу четких формулировок в ссылке w3c, которую я нашел, чтобы оговорить, должно ли что-либо, кроме текстового содержимого метки, получать фокус и передавать его.)
Похоже, IE неправильно обрабатывает ярлыки с элементами img в них. Единственные разумные способы решения этой проблемы, которые мне удалось найти, это использование поведения HTML компонентов, Javascript обработчики, или CSS хаки. Я не пробовал все эти способы, поэтому не могу гарантировать, что они будут работать.