链接click():未达到jQuery函数体

时间:2010-09-13 06:13:49

标签: jquery internet-explorer-7

我正在尝试将侧边栏div的高度与另一个div的高度对齐,通过单击链接访问(显示/隐藏)。到目前为止我实现的解决方案是为每次单击附加一个函数,并为侧边栏div设置$('')。height(height)。 “当然,它在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 个答案:

答案 0 :(得分:1)

稍后再提供两条警报说明,并找到问题所在。在IE7中,this.getAttribute('href')返回完整地址(http:// .... #tabIdentifier),而在其他浏览器(包括IE8)中,它返回href中的实际字符串,即“#tabIdentifier”。

通过添加一点字符串处理解决了问题:

 targetId = targetId.substring(targetId.lastIndexOf('#'));

答案 1 :(得分:0)

你打电话给那个功能吗?它在其他浏览器中有效吗?试试这个:

 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由id属性提供,而不是由#提供:

<div id="xxxxxx" ...></div>

答案 2 :(得分:0)

如果我没错,可能会发生的事情是,IE会将您的页面重定向到指定的href,并在进程中取消您尝试在标签上触发的任何事件。