سؤال

لدي رمز مثل هذا على صفحتي:

<div class="item item_wall id1"></div>
<div class="item item_wall id2"></div>
<div class="item item_wall id3"></div>
<div class="item item_wall id4"></div>
<div class="item item_wall id5"></div>

أريد أن يتم النقر فوق شيء في JQuery بحيث عندما يتم النقر فوق Div مع فئة "العنصر"، فسيتم تحميل DIV آخر من صفحة، سيعتمد اسم ملف الصفحة على النقر فوق Div. يفضل أن أرغب في تحميل:

something.php؟ اكتب = item_wall ومعرف = ID1

للرجوع إليها في المستقبل، هذا ما انتهى به مع:

<div id="itemstable" class="item_love">
    <div class="id1"></div>
    <div class="id2"></div>
    <div class="id3"></div>
    <div class="id4"></div>
    <div class="id5"></div>
    <div class="id6"></div>
</div>

jQuery:

<script>
$("#itemstable div").click(function(){
    var url = "something.php?type=" + $(this).parent().attr("class") + "id=" + $(this).attr("class");
    alert(url);
}); 
</script>
هل كانت مفيدة؟

المحلول

إجابة Spencer Ruport الخاص بك، يمكنك جعل هذا أسهل عند استخدام JQuery لاستخدام سمات مخصصة غير الفصل.

على سبيل المثال، قد يبدو Div الخاص بك مثل هذا:

<div class="item" type="item_wall" id="1"></div>

يمكنك بسهولة إنشاء محدد jQuery وحدث مثل ما يلي:

$(".item").click(function() {
    var url = "something.php?type=" + $(this).attr("type");
    windows.location = url;
});

بالطبع، لا تنسى التحقق من أجل الصلاحية، لا تثق في إدخال المستخدم أبدا (يمكن إعادة كتابة HTML من قبل مستخدم ضار).

نصائح أخرى

بالنسبة لمستند XHTML صالح، فإن الأسهل هو إضافة طفل غير مرئي إلهي تحت DIV الرئيسي الخاص بك. على سبيل المثال:

<div class="item">
  <div class="variable type">item_wall</div>
  <div class="variable id">1</div>
</div>

يمكنك العثور على "السمة المخصصة" باستخدام .find (). على سبيل المثال:

$(".item").click(function() {
    var type = $(this).find(".type").val();
    var url = "something.php?type=" + type;
    windows.location = url;
});

بعض الرأي: يجب تجنب خلط البيانات مع واجهة المستخدم.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top