PDA

View Full Version : مشکل در انتساب مقدار یک متغیر به یک ویژگی از یک عنصر



asgarkz
جمعه 28 فروردین 1394, 16:15 عصر
با سلام خدمت دوستان
من از طریق javascript مکان یک عنصر رو در صفحه تعیین میکنم که البته قبل از افزودن doctype بخوبی کار میکرد ولی الان که کد

<!doctype html>
رو به اول فایلم اضافه کردم عمل نمیکند.
نمونه کدی که کار نمیکند:
var zImage1, zButton1;
zImage1 = document.getElementById('xImage1');
zButton1 = document.getElementById('xButton1');
zButton1.style.left = zImage.left;
البته اگر از عدد ثابت استفاده کنم، جواب میده. به اینصورت: zButton1.style.left = '200px';

arenaw
شنبه 29 فروردین 1394, 09:27 صبح
سلام. خط ۴ رو به نظر میرسه اشتباه نوشتید:

zButton1.style.left = zImage1.style.left

asgarkz
شنبه 29 فروردین 1394, 19:26 عصر
با تشکر از توجه شما.
با یه مثال توضیح میدم:

<!DOCTYPE html>
<html>
<head>
<title> Web Site Title </title>
<style type="text/css">
.ButtonClass
{
position: absolute;
top: 100px;
width: 100px;
height: 100px;
}
</style>
</head>
<body>
<input class='ButtonClass' id='ButtonCenter' type='button' value='Center'>
<input class='ButtonClass' id='ButtonLeft' type='button' value='Left'>
<input class='ButtonClass' id='ButtonRight' type='button' value='Right'>
<script type='text/javascript'>
var zButtonCenter, zButtonLeft, zButtonRight, zButtonCenterRect;
zButtonCenter = document.getElementById('ButtonCenter');
zButtonLeft = document.getElementById('ButtonLeft');
zButtonRight = document.getElementById('ButtonRight');
//-------------
zButtonCenter.style.left = '300px';
zButtonCenterRect = zButtonCenter.getBoundingClientRect();
//------------
zButtonLeft.style.left = zButtonCenterRect.left - 150;
zButtonRight.style.left = zButtonCenterRect.left + zButtonCenterRect.width + 50;
</script>
</body>
</html>
اگر در مثال بالا خط اول رو حذف کنیم، مکان buttonها به درستی نمایش داده میشوند ولی همراه با خط اول بهم ریختگی پیش میاد. دلیلش چیه؟ و آیا راه حلی داره؟

asgarkz
یک شنبه 30 فروردین 1394, 21:20 عصر
انتساب مقدار رو با تابع setAttribute هم تست کردم. فرقی نمیکنه.
در ضمن وقتی با Alert مقدار خصوصیت left رو نمایش میدم، مشخص میشه که انتساب انجام شده ولی مکان button مطابق با اون مقدار نیست.
چرا؟

Javidhb
دوشنبه 31 فروردین 1394, 10:41 صبح
سلام،

این خط رو به این شکل تغییر بدید:

zButtonRight.style.left = zButtonCenterRect.left + zButtonCenterRect.width + 50 + 'px';