0

我想关联两个元素的宽度,第一个是简单的 div,第二个是跨度。

<div id="wb_Name_To_Menu" style="position:absolute;left:768px;top:20px;width:171px;height:18px;z-index:4;">
<span id="sp_Name_To_Menu" style="color:#FF0000;font-family:Arial;font-size:16px;">Love Me!</span></div>    
<div id="Layer_to_mainu" style="visibility: hidden;position:absolute;text-align:left;left:772px;top:22px;width:132px;height:135px;z-index:132;" title="">
    <div id="wb_main_mainu" style="position:absolute;left:8px;top:9px;width:123px;height:28px;z-index:1128;padding:0;">
    <div id="main_mainu">
    <ul style="display:none;">
    <li><span></span><span id="id_full_name_from_main_menu">love&nbsp;Meeeeee</span>
    <ul>
    <li><span></span><span>Account&nbsp;Sitting</span></li>
    <li><span></span><span>Help</span></li>
    <li><span></span><span>Log&nbsp;Out</span></li>
    </ul>
    </li>
    </ul>
    </div> 

在 JavaScript 中:

$(document).ready(function(){
  $("#wb_Name_To_Menu").hover(function(){ 
    $("#Layer_to_mainu").css("visibility","visible");  
    $("#Layer_to_mainu").css("width",$("#id_full_name_from_main_menu").width()+"px");
  });
});

$(document).ready(function(){
  $("#Layer_to_mainu").mouseleave(function(){
    $("#Layer_to_mainu").css("visibility","hidden");
  });
});

它不起作用!我知道原因:它是由$("#id_full_name_from_main_menu").width()哪个导致空值引起的!

4

2 回答 2

0

如果您删除+"px"您提供的脚本的第 4 行,它似乎可以工作。

$("#Layer_to_mainu").css("width",$("#id_full_name_from_main_menu").width());

于 2013-08-12T21:58:49.253 回答
0

$("#id_full_name_from_main_menu").width()返回 0,因为它的祖先<ul>已经display:none设置。要读取宽度,您可能只想删除该属性,或者您可以在 js 中临时更改它,具体取决于您要执行的操作

$(document).ready(function(){
  $("#wb_Name_To_Menu").hover(function(){ 
  $("#Layer_to_mainu").css("visibility","visible"); 
  $("#main_mainu > ul").css("display","block");
  $("#Layer_to_mainu").css("width",$("#id_full_name_from_main_menu").width()+"px");
  $("#main_mainu > ul").css("display","none");
});

这不会显示您的文本,但会更新#id_full_name_from_main_menu 的宽度,您需要删除display:none才能看到您的文本出现。

于 2013-08-13T01:49:46.387 回答