2014-03-29 53 views
1

财产“scrollHeight属性”为什么我收到此错误:遗漏的类型错误:无法读取的不确定

Uncaught TypeError: Cannot read property 'scrollHeight' of undefined.

的“更多”按钮返回我的页面的顶部,而不是改变我<div>高度元件。我该如何解决?

这是我的代码:

function piki($atts, $content = null) { 
{ ?> 
<script type="text/javascript"> 
var h = jQuery('#piki')[0].scrollHeight; 


jQuery('#more').click(function(e) { 
    e.stopPropagation(); 
    jQuery('#piki').animate({ 
     'height': h 
    }) 
}); 

jQuery(document).click(function() { 
    jQuery('#piki').animate({ 
     'height': '50px' 
    }) 
}) 
</script> 
<?php } 
    $url = '/?s='; 
    $str = ''; 

    $output = array(); 
    $count = 0; 

    foreach (explode(", ",$content) as $content) { 
     $count++; 
     $output[] = "<a href='" . $url . $content . "'>" . $content . "</a>"; 
     if ($count == 50) { 
      break; 
     } 
    } 

    return '<div id="piki" class="piki">'.implode(", ", $output).'</div><a id="more" style="float: left;" href="#">Read more</a>'; 
} 
add_shortcode('piki', 'piki'); 
+0

减去原因我的英语不好,不帮助我。 – user3476062

回答

5

的问题是,jQuery('#piki')[0]不选择任何元素。因此,当您尝试获取scrollHeight时,您试图从undefined值中获取字段。这是因为<script>中的代码在浏览器处理了<div id="piki"...元素之前执行。如果您将<script>移动到它出现的位置,并在div之后执行,那么JavaScript应该无误地执行。

相关问题