PDA

View Full Version : سوال: فراخونی ajax



fakhravari
چهارشنبه 13 آذر 1392, 19:03 عصر
با سلام
از سمت کد اطلاعات میخونم و اخر اطلاعات یه
sb.AppendFormat("<br /> <center> <input type='button' value='ادامه مطلب' id='Btn1' /> </center>");

اضافه میکنم. و به صورت ajax روی صفحه میریزم.
$('#Btn1').click(function () {
$(this).hide(200);
lastPostFunc();
});
سمت html میخواهم اگه کلیک شد بقیه اطلاعات دوباره بیاره.
مشکل اینجاست که من میخواهم input اولیه hide بشه و دوباره چون اطلاعات میخونه یه input دیگه درست میشه و ادامه ماجرا
یه مشکل دیگه اینه که در درخواست بعدی input درست نمی شه

fakhravari
شنبه 16 آذر 1392, 19:18 عصر
دوستان منظورم فهمیدن؟

Javidhb
شنبه 16 آذر 1392, 20:08 عصر
اگه یکم دیگه توضیح بدی و کد html (حداقل) بزاری...
خوشحال میشم بتونم کمک کنم...

meisam3322
شنبه 16 آذر 1392, 21:37 عصر
سلام

مشکل میشه فهمید منظور شما دقیقا چیه . توضیح بیشتر لطفا

fakhravari
شنبه 16 آذر 1392, 21:55 عصر
سلام
مثلا http://fakhravary.somee.com/test/1/Default.aspx
http://fakhravary.somee.com/test/1/Default2.aspx
مشکل تولید input حل شد اما فقط Input اولی اجرا میشه
دکمه ادامه مطلب میزنیم
یک بار ajax صدا میزنه
var ajax = $.ajax({
type: "POST",
url: "Default2.aspx/Foo",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {

$('.LoadData:last').after(data.d);
}
تابع هم میره
[WebMethod]
public static string Foo()
{
sb.AppendFormat("<input class='myClass' type='button' value='ادامه مطلب' id='Btn" + PageIndex + "' />");
return sb.ToString();
}
برای بار بعدی کار نمی کنه ادامه مطلب
$("input.myClass").click(function (event) {
if (a == 0) {
$(this).hide();
lastPostFunc();
} else {
a = 1;
NoData();
}
});
اما اگه اینطوری کنم می شه
$(this).click(function (event) {
if (a == 0) {
$(this).hide();
lastPostFunc();
} else {
a = 1;
NoData();
}
});

Javidhb
یک شنبه 17 آذر 1392, 00:43 صبح
شما اینو تست کنید...
چون دکمه های بعدی رو بعد از فرستاده شدن جواب از سرور به صفحه اضافه میکنید... (اگه درست گفته باشم)
برای اینکه بتونید انتخاب کنید باید بجای:

$("input.myClass").click(function (event) {


اینجوری بنویسید:

$(document).find('input.myClass').click(function (event) {
if (a == 0) {
$(this).hide();
lastPostFunc();
} else {
a = 1;
NoData();
}
});


اینجوری از اول DOM شروع به گشتن برای پیدا کردن دکمه ها میکنه


فقط یه نکته میمونه که با دکمه های قبلی چی کار میکنید؟
اگه ()remove نمیکنیدشون باید توی کد بالا از last: توی سلکتورتون استفاده کنید.

$(document).find('input.myClass:last').click(funct ion (event) {

fakhravari
سه شنبه 19 آذر 1392, 10:12 صبح
با سلام برسی میکنم نتیجه میگم.

fakhravari
دوشنبه 25 آذر 1392, 22:58 عصر
با سلام
اگر از این استفاده کنم
$(document).find('input.myClass').click(function (event) {
if (a == 0) {
$(this).hide();
lastPostFunc();
} else {
a = 1;
NoData();
}
});
اگر دکمه hide نکنم بعدی تولید میشه اما کار نمیکنه ولی دکمه اولی باز کار میکنه .
از :last استفاده کردم اما باز جواب نداد

Javidhb
سه شنبه 26 آذر 1392, 17:25 عصر
این دیگه باید کار کنه...


$(document).on('click', 'input.myClass',function (event) {...


اون لینک اول (http://fakhravary.somee.com/test/1/Default.aspx) که با scroll ایجکس رو صدا میزنید خیلی جالبتر از دکمه شده :چشمک:


بابت اون جواب قبلی هم باید یه عذرخاهی کنم... نمیدونم چرا اون روش رو پیشنهاد دادم... شرمنده!

fakhravari
سه شنبه 26 آذر 1392, 20:02 عصر
مشکل فراخونی حل شد .
اما Input و اطلاعاتی که در input 2 به بعد درست میشه اخر صفحه اضافه نمیکنه اول صفحه میاره:اشتباه:

fakhravari
سه شنبه 26 آذر 1392, 20:06 عصر
مشکل حل شد.
$('.LoadData').append(data.d);
ممنون بابت پیگیریت Javidhb