Jquery 如何在覆盖css中定义的样式时更新属性?
这个问题建立在我前面两个问题的基础上 我有一个必须包含的css(Jquery 如何在覆盖css中定义的样式时更新属性?,jquery,html,css,Jquery,Html,Css,这个问题建立在我前面两个问题的基础上 我有一个必须包含的css(first\u style.css在下面的代码片段中)。我已经将它缩减为img{height:auto;}——这是必须包含的内容。我可以在之前或之后添加任何样式。加载图像后,我运行一个脚本来更新图像的高度-见下文 如果我不包括first\u style.css,一切都正常。然而,如果我不得不把它包括进来,我就找不到让我的脚本正常工作的方法。我怎样才能修好它 $(函数(){ $('.images div a img')。on('lo
first\u style.css
在下面的代码片段中)。我已经将它缩减为img{height:auto;}
——这是必须包含的内容。我可以在之前或之后添加任何样式。加载图像后,我运行一个脚本来更新图像的高度-见下文
如果我不包括first\u style.css
,一切都正常。然而,如果我不得不把它包括进来,我就找不到让我的脚本正常工作的方法。我怎样才能修好它
$(函数(){
$('.images div a img')。on('load',function(){
$(this.attr('height',$(this.images').attr('imgheight'));
});
});代码>
img{
身高:无!重要;
}
试试这个:
$(函数(){
$('.images div a img')。on('load',function(){
$(this.css('height',$(this.images').attr('imgheight'));
});
});代码>
img{
身高:无!重要;
}
试试这个:
$(函数(){
$('.images div a img')。on('load',function(){
$(this.css('height',$(this.images').attr('imgheight'));
});
});代码>
img{
身高:无!重要;
}
这是你的问题的工作提琴:
HTML:
CSS:
这是你的问题的工作提琴:
HTML:
CSS:
您可以为此使用数据高度
属性,并使用元素.data('height')在脚本中获取该数据属性代码>
下面是一个工作示例
$(文档).ready(函数(){
$('.images img')。每个(函数(){
$(this.attr('height',$('images')).data(“height”);
});
});代码>
您可以为此使用数据高度
属性,并使用元素.data('height')在脚本中获取该数据属性代码>
下面是一个工作示例
$(文档).ready(函数(){
$('.images img')。每个(函数(){
$(this.attr('height',$('images')).data(“height”);
});
});代码>
无法理解您需要什么图像必须调整大小(在本例中,调整到300px高度)可能,我无法使用属性覆盖样式。不知道如何使用javascript覆盖样式。您有first_style.css
文件中的height:auto
,并且您的属性height=“300px”
不正确。无法理解您需要什么图像必须调整大小(在本例中,调整为300px高度)可能,我无法使用属性覆盖样式。不确定如何使用javascript覆盖样式。您有first_style.css
文件中的height:auto
,并且您的属性height=“300px”
不正确当我运行您的代码段时,图像仍然是完整大小,而不是300pxhigh@YuliaV错误,当onload完成时,您将看到大小调整。这就是onload事件的问题所在,正如我在回答中所解释的,我可以建议您避免onload
事件,并尝试使用$(document).ready()
,因为您不进行计算,并且高度始终为300px。我需要知道图像的大小以扩展脚本,我是否正确理解,在执行$(document).ready()
的过程中,它是未知的?不,在加载之前,您无法知道图像的大小,但您正在写入固定高度(300像素),在这种情况下,图像的大小无关紧要,始终是300像素,因此,您可以安全地使用document.ready当我运行您的代码段时,图像仍然是完整大小,而不是300pxhigh@YuliaV错误,当onload完成时,您将看到大小调整。这就是onload事件的问题所在,正如我在回答中所解释的,我可以建议您避免onload
事件,并尝试使用$(document).ready()
,因为您不进行计算,并且高度始终为300px。我需要知道图像的大小以扩展脚本,我是否正确理解,在执行$(document).ready()
的过程中,它是未知的?不,在加载之前,您无法知道图像的大小,但您正在写入固定高度(300像素),在这种情况下,图像的大小无关紧要,始终是300像素,因此您可以安全地使用document.ready
<div imgheight="300px" class="images">
<div><a> <img class="myimg" src=" http://www.yu51a5.com/wp-content/uploads/2015/01/goldenhorseman.jpg " /></a> </div>
<div><a> <img class="myimg" src=" http://www.yu51a5.com/wp-content/uploads/2015/01/bronze-horseman.jpg "/></a> </div>
</div>
$(function() {
$('.images img').each(function(){
console.log($(this).attr('src'));
$(this).attr('height', $(this).closest('.images').attr('imgheight'));
})
});
<link rel='stylesheet' href='http://www.yu51a5.com/wp-content/themes/pinboard-child/first_style.css' type='text/css' media='all' />