PDA

View Full Version : ایجاد فرم در زمان اجرا



z.gitaro
پنج شنبه 28 فروردین 1393, 21:31 عصر
من با استفاده از جی کوئری و جاوااسکریپت میخوام حین اجرا تگ هایی رو به صفحه اضافه کنم
مثلا یک <div id='mylist'></div> حین اجرا اضافه میکنم و یه همچین کدی براش نوشتم:$('#mylist').click(function () {
$('#mylist').css("display", "none");
if (flag == 1)
flag--;
});
اما وقتی رو div کلیک میکنم اصلا این کد اجرا نمیشه
میشه راهنمایی کنین دلیلش چیه

alireza_s_84
پنج شنبه 28 فروردین 1393, 23:39 عصر
$(document).on('click',#mylist',(function () { $('#mylist').css("display", "none");
if (flag == 1)
flag--;
});

z.gitaro
جمعه 29 فروردین 1393, 00:46 صبح
$(document).on('click',#mylist',(function () { $('#mylist').css("display", "none");
if (flag == 1)
flag--;
});

اینو نوشتم بازم کار نمیکنه

alireza_s_84
جمعه 29 فروردین 1393, 12:34 عصر
اینو نوشتم بازم کار نمیکنه
این کدها رو بصورت یک فایل HTML ذخیره کنید و نتیجه رو ببینید.

<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.0.min.js"></script>


<script type="text/javascript">
$(document).ready(function () {

var $div = $("<div id='myId'>Click me ...</div>");
$('body').append($div);


alert('Div Appended');


$(document).on('click', '#myId', function () {
alert('Worked');
});
});
</script>
</head>
<body>
</body>
</html>

z.gitaro
جمعه 29 فروردین 1393, 14:15 عصر
ممنون از راهنماییتون
اون قسمتش درس شد
حالا یه متغییر سراسری تعریف کردم میخوام وقتی رویداد کلیک اجرا شد متغییر یه واحد افزایش پیدا کنه اما هربار که کلیک اجرا میشه مقدار متغیر صفر هست
$(document).on('click', '#myId', function () {
alert('Worked');
flag++;

});

z.gitaro
جمعه 29 فروردین 1393, 14:59 عصر
ببخشید یه سوال دیگه هم داشتم :
میخوام رو صفحه وقتی بیرون از یه div کلیک کردم اون div دیده نشه
این کد رو نوشتم:
$('body').click(function () {
$('#mylist').css("display", "none");

});
ولی وقتی رو خود div با ایدی mylist هم کلیک میکنم این کد اجرا میشه

alireza_s_84
جمعه 29 فروردین 1393, 15:04 عصر
ممنون از راهنماییتون
اون قسمتش درس شد
حالا یه متغییر سراسری تعریف کردم میخوام وقتی رویداد کلیک اجرا شد متغییر یه واحد افزایش پیدا کنه اما هربار که کلیک اجرا میشه مقدار متغیر صفر هست
$(document).on('click', '#myId', function () {
alert('Worked');
flag++;

});



دقیقا بگین که flag رو کجا گذاشتین. مکانش مهمه

alireza_s_84
جمعه 29 فروردین 1393, 15:07 عصر
ببخشید یه سوال دیگه هم داشتم :
میخوام رو صفحه وقتی بیرون از یه div کلیک کردم اون div دیده نشه
این کد رو نوشتم:
$('body').click(function () {
$('#mylist').css("display", "none");

});
ولی وقتی رو خود div با ایدی mylist هم کلیک میکنم این کد اجرا میشه

به رویداد کلیک div این کد رو اضافه کنید (اولین خط باشه بهتره):
$('#mydiv').click(function (event) {
event.stopPropagation();

});

z.gitaro
جمعه 29 فروردین 1393, 15:34 عصر
اقا علیرضا ممنون که کمکم میکنین
اون دوتا مشکل شد
حالا یکی دیگه پیش اومد!
من کلا میخوام یه کمبوباکس طراحی کنم
اپشناش رو تو div با ایدی mylist نشون میدم که هر اپشنم توی یه div جداگانه است
حالا میخوام وقتی رو اپشنی کلیک کردم مقدارش رو توی تکست باکس با ایدی query نشون بدم
این کد رو نوشتم
$(document).on('click', '#mylist div', function () {
var optionSelected = $(this).text();
$('#query').val(optionSelected);
});
ولی وقتی رو اپشنی کلیک میکنم همه اپشنا تو تکست باکس نشون داده میشن یعنی مقادیر موجود در div اصلی با ایدی mylist رو نشون میده

alireza_s_84
جمعه 29 فروردین 1393, 16:04 عصر
اقا علیرضا ممنون که کمکم میکنین
اون دوتا مشکل شد
حالا یکی دیگه پیش اومد!
من کلا میخوام یه کمبوباکس طراحی کنم
اپشناش رو تو div با ایدی mylist نشون میدم که هر اپشنم توی یه div جداگانه است
حالا میخوام وقتی رو اپشنی کلیک کردم مقدارش رو توی تکست باکس با ایدی query نشون بدم
این کد رو نوشتم
$(document).on('click', '#mylist div', function () {
var optionSelected = $(this).text();
$('#query').val(optionSelected);
});
ولی وقتی رو اپشنی کلیک میکنم همه اپشنا تو تکست باکس نشون داده میشن یعنی مقادیر موجود در div اصلی با ایدی mylist رو نشون میده
اول اینکه بهتره برای ساخت لیستها از تگ ul استفاده کنید. اینطور ساختار سمانتیک document شما حفظ میشه.
من یه نمونه ساده براتون میذارم میتونید با تغییر اون به حالت دلخواه خودتون برسید:
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.0.min.js"></script>


<script type="text/javascript">
$(document).ready(function () {
$('#option').click(function () {
$(this).find('ul.list').toggle();
});


$('#option ul li').click(function (event) {
$('#option .label').text($(this).text());
});


});
</script>


<style type="text/css">
#option {
position: relative;
width: 200px;
height: 14px;
padding: 3px;
border: solid 1px #000;
cursor: pointer;
background-color: #e0e0e0;
}


#option ul {
position: absolute;
border: solid 1px #000;
right: -1px;
top: 18px;
list-style: none;
padding: 1px;
margin: 0px;
background-color: white;
width: 204px;
display: none;
}


#option ul li {
padding: 3px 5px;
}


#option ul li:hover {
background-color: aqua;
}
</style>
</head>
<body>
<div style="direction: rtl; font-family: Tahoma; font-size: 9pt;">
<div id="option">
<span class="label">انتخاب کنید</span>


<ul class="list">
<li>انتخاب کنید</li>
<li>انتخاب 1</li>
<li>انتخاب 2</li>
<li>انتخاب 3</li>
<li>انتخاب 4</li>
<li>انتخاب 5</li>
</ul>
</div>
</div>
</body>
</html>

z.gitaro
جمعه 29 فروردین 1393, 16:51 عصر
خیلی خیلی خیلی ممنون
درس شد!

z.gitaro
جمعه 29 فروردین 1393, 16:53 عصر
فقط یه چیز دیگه
وقتی میخوام موقع اجرا عکسی رو نشون بدم نشون نمیده
$div.append("<img src='~/Images/combo_select_dhx_skyblue.gif'id='cmb-img' />")

alireza_s_84
جمعه 29 فروردین 1393, 18:11 عصر
فقط یه چیز دیگه
وقتی میخوام موقع اجرا عکسی رو نشون بدم نشون نمیده
$div.append("<img src='~/Images/combo_select_dhx_skyblue.gif'id='cmb-img' />")



"~" توی آدرس عکس وجود داره که فقط سمت سرور معنی میده (اشاره به پوشه ی روت داره) که در html معنی نداره. شما باید آدرس نسبی صحیح رو به عکس بدین ممکنه با جایگزین کردن .. بتونید جواب بگیرین بسته به مکان عکس شما داره.

z.gitaro
شنبه 30 فروردین 1393, 08:43 صبح
چجوری میشه بین اپشنای این کمبوباکس با کلیدهای جهت دار حرکت کرد؟

z.gitaro
شنبه 30 فروردین 1393, 11:44 صبح
اقا علیرضا کجایین؟!میشه اینم جواب بدین