link click(): тело функции jQuery не достигнуто
Я пытаюсь выровнять высоту боковой панели div по высоте другого div, доступ к которому (показать / скрыть), нажав на ссылку. Решение, которое я реализовал до сих пор, заключается в том, чтобы прикреплять функцию к каждому клику и устанавливать $(''). Height(height) для боковой панели div. "Конечно, это не работает в IE7, хотя это здорово в IE8 и Firefox.
JS код:
function BindResizeSideBar() {
$('div#containerFloat div#tabs-box a').each ( function() {
var targetId = this.getAttribute('href');
if($('div#' + targetId).length == 0) return;
$(this).bind('click', function() {
var height = $('div#' + targetId).height() + 90;
alert(targetId + ', ' + height);
$('div#divSavedSearchesSideBar div.leftSide').height(height);
});
});
// init: click on tabProfile;
$('div#containerFloat div#tabs-box a[href=#tabProfile]').click();
}
HTML структура:
<div#content-side.searchProspects>
<div#sidebar style="float: left; width: 15%;">
<div#divTabContainer>
<div#header>
<div#containerFloat>
<div#tabs-box>
<div#tabContent1>
<div#tabContent2>
...
<div#tabContent6>
3 ответа
Еще две инструкции оповещения позже, и проблема была найдена. В IE7 this.getAttribute('href')
возвращает полный адрес (http:// .... #tabIdentifier)
в то время как в других браузерах (включая IE8) он возвращал фактическую строку в href, а именно "#tabIdentifier".
Проблема решена добавлением небольшой обработки строк:
targetId = targetId.substring(targetId.lastIndexOf('#'));
Ты называешь эту функцию? И работал ли он в других браузерах? Попробуй это:
function BindResizeSideBar() {
$("div#containerFloat div#tabs-box a").each (function() {
var targetId = $(this).attr("href"); // starts with #
if($("div" + targetId).length == 0) return;
$(this).bind("click", function() {
var height = $("div" + targetId).height() + 90;
alert(targetId + ', ' + height);
$("div#divSavedSearchesSideBar div.leftSide").height(height);
});
});
// init: click on tabProfile;
$('div#containerFloat div#tabs-box a[href=#tabProfile]').click();
}
В вашем HTML-коде идентификатор задается id
атрибут, а не #
:
<div id="xxxxxx" ...></div>
Если я не ошибаюсь, то, что может случиться, заключается в том, что IE перенаправляет вашу страницу на указанный href и в процессе отменяет любые события, которые вы пытаетесь сгенерировать в теге.