1

快速概览,当用户单击带有锚标记的链接时,它会在目标页面上打开最接近该锚的隐藏 div。

我的问题似乎很基本,我只是想不通。

为什么这样做(指定变量以将高度设置为,在本例中为 height7):

var height7 =  100;

if(window.location.hash) {
      var hash = window.location.hash.substring(1); 
      $('a[name='+hash+']').closest('[id^="option"]').show();
      $('a[name='+hash+']').closest('[id^="option"]').height(height7);
} else {
      // No hash found
}

这不起作用(在这种情况下,尝试构建我要打开的 div 的名称,将其放在变量中并将其传递给 height() 函数,就像上面一样,由于某种原因它不接受该变量) :

if(window.location.hash) {
     var hash = window.location.hash.substring(1); 
     var option_name = $('a[name='+hash+']').closest('[id^="option"]').attr("id");
     var hash_div_height_id = "height" + option_name.substring(6);
     alert(hash_div_height_id);
     $('a[name='+hash+']').closest('[id^="option"]').show();
     $('a[name='+hash+']').closest('[id^="option"]').height(hash_div_height_id);
} else {
      // No hash found
}
4

2 回答 2

1

您似乎正在分配一个字符串值

var hash_div_height_id = "height" + option_name.substring(6);

     .height(hash_div_height_id);

因为它应该是一个数字。

所以hash_div_height_id会像height+something

设置height它期望的属性时

表示像素数的整数,或附加可选测量单位的整数(作为字符串)。

于 2013-06-17T22:30:50.610 回答
1

您在每种情况下分配不同的值:

$('a[name='+hash+']').closest('[id^="option"]').height(height7); //height = 100

$('a[name='+hash+']').closest('[id^="option"]').height(hash_div_height_id); //height = "height" + option_name.substring(6)
于 2013-06-17T22:32:11.870 回答