向元素添加属性
Adding an attribute to element
我正在尝试向元素添加属性。该属性将指示某个高度和屏幕宽度中心的位置。这就是为什么我尝试使用 jquery 来获取屏幕宽度中心的位置。
所以,这段代码:
<script>$("p.slider-price").attr('data-position', '145, ' + (($("p.slider-price").parent().width() - $("p.slider-price").outerWidth()) / 2));</script>
正确添加属性 data-position: "145, 500"
。
但是我尝试对另一个元素使用相同的代码:$("p.house-description").attr('data-position', '200, ' + (($("p.house-description").parent().width() - $("p.house-description").outerWidth()) / 2));
,但由于某种原因,微积分总是 returns 0,所以它只是添加 data-position: "200, 0"
.
最终代码为:
<script>
$("p.slider-price").attr('data-position', '145, ' + (($("p.slider-price").parent().width() - $("p.slider-price").outerWidth()) / 2));
$("p.house-description").attr('data-position', '200, ' + (($("p.house-description").parent().width() - $("p.house-description").outerWidth()) / 2));
</script>
所以问题是第二行的微积分不能正常工作(总是 returns 0),而第一行的微积分可以完美地工作。有什么问题吗?
编辑:这是 HTML 代码:
p class="slider-price" data-in="fade" data-step="1" data-delay="250" data-out="fade">
,000
</p>
<p class="house-description" data-in="fade" data-step="1" data-delay="350" data-out="fade">
Modern Apartment in Kiev, Ukraine
</p>
基本上这部分代码:(($("p.house-description").parent().width() - $("p.house-description").outerWidth()) / 2)
总是returns0;不知道为什么。
所以,只是为了在评论部分跟进我的 post。您的 p.slider-价格默认为 display:block。它占用父级的内部宽度。
你需要设置p的宽度slider-price/description你的js代码才能生效
p.slider-price{
width:400px;
}
$(document).ready(function(){
console.log( $("p.slider-price").parent().width() );
console.log( $("p.slider-price").outerWidth() );
var leftDist = (parseInt($("p.slider-price").parent().width()) - parseInt($("p.slider-price").outerWidth()))/2;
console.log( leftDist );
$("p.slider-price").attr('data-position', '145, ' + leftDist);
});
codepen 示例:http://codepen.io/anon/pen/bNRORQ
我正在尝试向元素添加属性。该属性将指示某个高度和屏幕宽度中心的位置。这就是为什么我尝试使用 jquery 来获取屏幕宽度中心的位置。
所以,这段代码:
<script>$("p.slider-price").attr('data-position', '145, ' + (($("p.slider-price").parent().width() - $("p.slider-price").outerWidth()) / 2));</script>
正确添加属性 data-position: "145, 500"
。
但是我尝试对另一个元素使用相同的代码:$("p.house-description").attr('data-position', '200, ' + (($("p.house-description").parent().width() - $("p.house-description").outerWidth()) / 2));
,但由于某种原因,微积分总是 returns 0,所以它只是添加 data-position: "200, 0"
.
最终代码为:
<script>
$("p.slider-price").attr('data-position', '145, ' + (($("p.slider-price").parent().width() - $("p.slider-price").outerWidth()) / 2));
$("p.house-description").attr('data-position', '200, ' + (($("p.house-description").parent().width() - $("p.house-description").outerWidth()) / 2));
</script>
所以问题是第二行的微积分不能正常工作(总是 returns 0),而第一行的微积分可以完美地工作。有什么问题吗?
编辑:这是 HTML 代码:
p class="slider-price" data-in="fade" data-step="1" data-delay="250" data-out="fade">
,000
</p>
<p class="house-description" data-in="fade" data-step="1" data-delay="350" data-out="fade">
Modern Apartment in Kiev, Ukraine
</p>
基本上这部分代码:(($("p.house-description").parent().width() - $("p.house-description").outerWidth()) / 2)
总是returns0;不知道为什么。
所以,只是为了在评论部分跟进我的 post。您的 p.slider-价格默认为 display:block。它占用父级的内部宽度。
你需要设置p的宽度slider-price/description你的js代码才能生效
p.slider-price{
width:400px;
}
$(document).ready(function(){
console.log( $("p.slider-price").parent().width() );
console.log( $("p.slider-price").outerWidth() );
var leftDist = (parseInt($("p.slider-price").parent().width()) - parseInt($("p.slider-price").outerWidth()))/2;
console.log( leftDist );
$("p.slider-price").attr('data-position', '145, ' + leftDist);
});
codepen 示例:http://codepen.io/anon/pen/bNRORQ