次のスクリプトは、リンクの切り捨てとアイコン クラスの追加の両方にうまく機能しますが、 遅すぎまし た。
私はそれを削除しましたが、機能しますが、最後の要素では機能しません
<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 に注意してください - もちろん機能します - しかし、それは冗長であり、このコードを(ページが各要素をロードするときに)即座に実行し、2つの同一のスクリプトを実行する代わりに完全 に実行するためのより効率的な方法があるかどうか疑問に思っていました。高速に実行され、見逃した最後のアイテムに適用されます。