2014-11-21 53 views
0

我在此基础上尝试了一些我已经收集到的内容,但这只是简单地将其完全删除;标题不会在< = 768px根据屏幕宽度隐藏链接标题属性 - 不会取消隐藏

<script> 
if($(window).width() > 767) { 

    $('[title]').each(function() { 

     var $this = $(this); 
     $this.data('title',$this.attr('title')); 
     $this.removeAttr('title'); 

    }); 
} 
</script> 

返回回见http://jsfiddle.net/2nHxV/

+0

的现场演示不包括宽度测试代码... – Quentin 2014-11-21 23:45:29

+0

_“称号,回不回在<= 768px” _ - 和你期望通过自己神奇地出现......? – CBroe 2014-11-22 00:04:17

回答

1

所以把它放回去?

var $titles = []; 

if($(window).width()> 767) { 
    $('[title]').each(function() { 
     var $this = $(this); 
     $this.data('title',$this.attr('title')); 
     $this.removeAttr('title'); 

     $titles.push($this); 
    }); 
} else { 
    $.each($titles, function(index, $this) { 
     $this.attr('title',$this.data('title')); 
    }); 
} 

工作演示:http://jsfiddle.net/z3rr9d04/

您还可能希望把这个逻辑$(window).on('resize', ...);处理器中,因为它只会进行一次在页面加载当前标准的执行。

+0

这里的两个答案我喜欢这个缓存元素引用,并且只遍历DOM一次。 – Maverick 2014-11-21 23:54:46

1
if ($(window).width() > 767) { 
    $('[title]').each(function() { 
     var $this = $(this); 
     $this.data('title',$this.attr('title')); 
     $this.removeAttr('title'); 
    }); 
} else { 
    // as in above `title` attribute removed and `data-title` added, so now you've 
    // to loop with data-title 
    $('[data-title]').each(function() { 
     var $this = $(this); 
     $this.data('title',$this.data('title')); 
     $this.removeAttr('data-title'); 
    }); 
}