PDA

View Full Version : سوال: نتیجه گیری از کد زیر؟



irpersian20
جمعه 10 مرداد 1393, 02:32 صبح
سلام
بنده از عمد قسمت


$(document).ready(function())

رو حذف کردم و یک آزمایشی انجام دادم.
هنگامی که بنده کد جی کوئری رو آخرین قسمت صفحه قرار دادم،تغیرات اعمال میشه و اگر بالای تگ ها قرار دهم خیر.
من این طور حدس میزنم وقتی من کد رو بالای تگ ها و اول صفحه میزارم. چون قبل از لود شدن تگ ها کد اجرا میشه ، خاصیت class="marked" رو به تگ ها اضافه میکنه و اون موقع اصلا تگی وجود نداره! و بعد که تگ ها تازه لود شدند دیگر خاصیت class="marked" رو اضافه نمیکنه چون یک بار (همان ابتدا) کار رو انجام داده.



اما وقتی آخر صفحه بزارم هنگامی که تگ ها لود شدند این خاصیت رو اضافه میکنه پس میتونه درست کار کنه.
ایا درست فهیمدم یا دلیل دیگری دارد؟

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="jquery-2.1.1.min.js"></script>


<style>
.marked {
background-color:tomato;
border: dotted solid thick 1px;
}
</style>
<title>It's porpuse practical practice!</title>
<meta http-equiv="refresh" content="5" />

</head>
<script>
$(":button").addClass("marked");


</script>
<body>
<form>
<fieldset>
<input type="button" value="Input Button">
<input type="checkbox">

<input type="file" />
<input type="hidden" />
<input type="image">

<input type="password">
<input type="radio">
<input type="reset">

<input type="submit">
<input type="text">
<select>
<option>Option</option>
</select>

<textarea></textarea>
<button>Button</button>
</fieldset>
</form>


</body>
</html>

2undercover
جمعه 10 مرداد 1393, 09:21 صبح
بله، درست متوجه شدید. در واقع رویداد ready از شی document در jQuery وقتی اجرا میشه که درخت DOM کامل لود میشه و میشه به تمام تگ های اون صفحه دسترسی داشت.

Mori Bone
جمعه 10 مرداد 1393, 12:03 عصر
شما بالای تگ های body توی head(یا هر جای دگ) بنویسید ولی این طوری:
<script>
$(function() {
$(":button").addClass("marked");
})
</script>



$(function() {}) معادل $(document).ready هست یعنی موقعی که کال تگ های html لود شدند