سؤال

ويا رفاق، اسمحوا لي أولا أن أقول ايم مستجد مسج! أريد أن البرنامج المساعد بسيط هو أن السيارات بملء أتش تي أم أل حدد العنصر، فإنه يعمل بشكل جيد على العنصر الأول ولكن عندما أدعو مرة أخرى لملء ثانية فإنه يلحق أي شيء. وهنا دعواتي في علامة التبويب اياكس حيث #product و# فئة جديدة هي العناصر المختارة:

$(function(){

    $("#product").popSelect("products");

    $("#new-category").popSelect("categories");

});

وHTML:

><select id="product" name="product">
>     < option value="">Select Product</option>                 
></select >     
><select id="new-category" name="new-category">
>      < option value="">Select Category< /option>                  
></select >

وهنا هو البرنامج المساعد:

(function(jQuery){
jQuery.fn.popSelect = function(table) {

    return jQuery(this).each(function(){            

        var obj = jQuery(this); 

        if(this.nodeName.toLowerCase() == 'select'){
            jQuery.getJSON("../app/modules/ajax/json.php", { table:table },
                function(data){                 
                    var options = '';           
                    jQuery.each(data, function(i,item){                                        
                        options += '<option value="' + item.id + '">' + item.title + '</option>';                   
                    });                 
                    obj.append(options);                
                });     
        };
    });
};
})(jQuery);

والغريب إذا قمت بتغيير استدعاء دالة الثانية $("#new-category").popSelect("categories"); ل $("[id^='new-category']").popSelect("categories"); بعد ذلك يعمل بشكل جيد، هناك شيء خاطئ مع بلدي محدد؟

وشكرا على اي مساعدة!

هل كانت مفيدة؟

المحلول

ولقد أجبت على سؤال مماثل، لا يمكنك الحصول على عنصرين مع نفس ID على نفس الصفحة ، فإنه يتسبب في هذه المشكلة بالضبط. سيكون لديك لاستخدام فئة أو تغيير واحد من معرفات.

نصائح أخرى

وأنا لا أميل لها إجابة مباشرة ولكن يبدو سيكون لديك 2 اياكس نشط يدعو المتميز في الأساس نفس الوقت مما قد يؤدي إلى بعض الغرابة؟

وطيب حتى شيء من هذا القبيل؟

(function($){
jQuery.fn.popSelect = function(table) {

    return $(this).each(function(){         

        var obj = $(this);  

        if(this.nodeName.toLowerCase() == 'select'){
            obj.queue("fx", function(){$.getJSON("../app/modules/ajax/json.php", { table:table },
                function(data){                 
                    var options = '';           
                    $.each(data, function(i,item){                                         
                        options += '<option value="' + item.id + '">' + item.title + '</option>';                   
                    });             
                    obj.append(options);                
                }); }); 
        };
    });};})(jQuery);

وأحصل على أي أخطاء لكنه لا يزال بملء فقط في أول مختارة، نفس الرد في IE. المحير، بل وإضافة وظيفة "الانتظار" في المنتصف المكالمات وأنها لم تفعل شيئا. هو وجود علامة معرف == اسم العلامة طيب؟ شيء أنا لاحظت فقط، لتحل محل "معرف =" الجديدة فئة "ب" معرف = 'newwcategory "يجعل من العمل !؟ هو سومثينغ ذر بأس به "-"؟ الصورة في هويات

وشكرا مرة أخرى على كل مساعدة حتى الآن!

ولدي منذ تأسيسها أن هذه القضية مع علامات التبويب UI مسج منذ المساعد يعمل تماما بدونها! العناصر في علامة التبويب المحددة حاليا لا يجري بالسكان إذا كان علامة التبويب المحددة سابقا عنصر من نفسه هوية شخصية. مثال:

وعلامة التبويب الأولى:

<select id="new_category" name="new_category">

     <option value="">Select Category</option>
</select>

وتبويب ثانيا:

<select id="product" name="product">
      <option value="">Select Product</option>
</select>

<select id="new_category" name="new_category">
      <option value="">Select Category</option>
</select>

وتبويب الثالث:

<select id="product" name="product">
      <option value="">Select Product</option>
</select>

والانتقال من علامة التبويب 1 إلى علامة التبويب 2 - سوف يتم ملؤها المنتج ولكن لا فئة جديدة والانتقال من علامة التبويب 2 إلى علامة التبويب 3 - المنتج لن يتم ملؤها ...

وأي بمعنى. إذا عنصر مع ما يعادل معرف إلى علامة التبويب السابقة موجود في علامة التبويب الحالية، لن يتم ملؤها لها، و (ربما؟) علامة التبويب السابقة سوف يكون العنصر على الرغم من أنني غير قادر على رؤية هذا نظرا لأنه لم يتم تحميل. لقد قمت حاولت تافه مع مخبأ لكنه لا يساعد، تحديد شكل معرف كما الأم يجب إصلاح ذلك ولكن لماذا لا ضرورة لذلك، لا ينبغي أن علامات التبويب تكون مستقلة؟

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