आप कैसे ले जाऊं भाई तत्वों आदेश ऊपर / प्रोटोटाइप 1.5.1 में नीचे?

वोट
2

मैं सेटअप करने के लिए एक समारोह 'ऊपर' चलती है और एक के रूप में एक तालिका पंक्ति के 'नीचे' अनुमति देने के लिए कोशिश कर रहा हूँ। तालिका पंक्तियों की संख्या गतिशील है - उपयोगकर्ता अतिरिक्त पंक्तियों को जोड़ने के लिए एक बटन हिट कर सकते हैं। प्रत्येक तालिका पंक्ति में कई क्षेत्र हैं। वहाँ एक शीर्ष लेख पंक्ति और विभिन्न वर्ग के नाम है, इसलिए hasClassName के चेक के साथ पाद लेख पंक्ति है।

मैं पहली बार इस समारोह को सफलतापूर्वक उपयोग के लिए प्रोटोटाइप 1.6 के साथ साकार मैं इसे संस्करण 1.5.1 के साथ काम करने के लिए की जरूरत से पहले लिखा था। हम प्रोटोटाइप का नवीनतम संस्करण में अपग्रेड किया जाएगा जब समय परीक्षण के लिए उपलब्ध है, लेकिन मैं यह हमारे परियोजना के वर्तमान संस्करण के तहत काम करने की जरूरत।

मुख्य समस्या यह है कि 1.5 में आप सिर्फ एक प्रविष्टि की सामग्री के रूप में एक तत्व सम्मिलित नहीं कर सकते है। यह मैं तत्व मैं सम्मिलित करना चाहते हैं के एचटीएमएल जरूरत का मतलब है। यह समस्या है कि इस मूल HTML है जब मैं तत्व (चर insertHTML) के लिए HTML का उपयोग और जानकारी उपयोगकर्ता द्वारा संबंधित प्रपत्र तत्वों में प्रवेश शामिल नहीं है को लाता है।

किसी भी तरह की सहायता का स्वागत किया जाएगा।

moveDataDef: function(num, dir) {
    var targRow = $('dataDefItem'+num);
    var content = targRow.innerHTML;
    var siblings;
    var insertHTML = targRow.inspect() + targRow.innerHTML + '</tr>';

    if(dir == 'up')
        siblings = targRow.previousSiblings();
    else
        siblings = targRow.nextSiblings();

    if (siblings[0].hasClassName('dataDefItem')) {
        targRow.remove();
        if(dir == 'up')
            new Insertion.Before(siblings[siblings.length - 1].id, targRow);
        else
            new Insertion.After(siblings[0].id, targRow);
    }
}
04/05/2009 को 13:20
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
1

मुझे लगता है कि आप इस कोड का हिस्सा इस्तेमाल कर सकते हैं, अपने निचले अगर ब्लॉक की जगह। यह देशी डोम समारोह, यानी का उपयोग insertBefore () :

if (siblings[0].hasClassName('dataDefItem')) {
  var targetParent = targRow.parentNode;
  var sibling = siblings[0];

  if(dir == 'up'){
    targRow.remove();
    targetParent.insertBefore(targRow, sibling);
  } else {
    sibling.remove();
    targetParent.insertBefore(sibling, targRow);
  }
}

आपके संदर्भ के लिए, यदि आप रुचि रखते हैं, यह मेरा POC कोड है:

<table id="tb1">
<tbody>
<tr id="tr1"><td>1</td></tr>
<tr id="tr2"><td>2</td></tr>
<tr id="tr3"><td>3</td></tr>
</tbody>
</table>

<script type="text/javascript">
/* <![CDATA[ */
(function(){
var trr3 = $('tr3');
var tp = trr3.parentNode; 
var trr1 =trr3.previousSiblings();
trr3.remove();
tp.insertBefore(trr3, trr1[0]);
})();
/* ]]> */
</script>

धन्यवाद।

अपडेट: फिक्स टाइपो (लापता '{' और '}')।

04/05/2009 को 14:15
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more