以下脚本可以很好地截断链接并添加图标类,但是太慢了: 使用document.ready 阻止代码执行直到加载页面上的所有元素。
我删除了它,它可以工作,但它不适用于最后一个元素
<script>
jQuery.noConflict();
jQuery(".resultAction").each(function(){
var fileName = jQuery(this).find('a').html()
var fileExtension = fileName.substring(fileName.lastIndexOf('.') );
var nameChars= fileName.length;
var shorter=fileName.substring(0,10)+"...";
//apply style to relative to file extension
if(fileExtension=="jpg"||"pdf"||"mov"){
jQuery(this).find("#indicator").addClass("is" + fileExtension.slice(1) );
}
//no file extension hide the icon div "indicator"
if((fileExtension.indexOf('.') == -1)){
jQuery(this).find("#indicator").addClass("not");
}
//truncate text
if(nameChars>10){
jQuery(this).find('a').text(shorter);
}
});
</script>
所以我摆脱了上面的 .ready 并再次添加了这个:
<script>
jQuery(document).ready(function(){
jQuery.noConflict();
jQuery(".resultAction:last").each(function(){
//-SAME CODE ABOVE-....
</script>
-注意 :last -当然可以 - 但它是多余的,我想知道是否有一种更有效的方法可以使此代码立即运行(当页面加载每个元素时)并且完全 而不是运行两个相同的脚本跑得快,一个应用到它错过的最后一个项目。