का उपयोग कर LI तत्वों डालने मुझे लगता है कि एन कॉलम इतना बड़ा हो स्तंभ के सभी से संभव LI के सभी तत्वों को शामिल करने की जरूरत है कि होता है एक HTML/जावास्क्रिप्ट आवेदन किया है।जावास्क्रिप्ट यूएल तत्व की ऊंचाई का आकार बदलने नहीं कभी कभी जब Jquery
सरल उपाय, प्रत्येक स्तंभ में आइटम के सभी की ऊंचाइयों गिनती गद्दी के लिए क्षतिपूर्ति, और फिर कॉलम से प्रत्येक के लिए है कि कुल करने के लिए ऊंचाई सेट करने लगता है।
यह महान काम करता है जब LI तत्वों सादा पाठ होते हैं। दुर्भाग्यवश, जब LI तत्वों के बजाय छवियां होती हैं, तो विभिन्न ब्राउज़रों में समस्याएं होती हैं। उदाहरण के लिए, जब मैं पहली बार फ़ायरफ़ॉक्स में पेज लोड करता हूं, तो यह नीचे स्क्रीनशॉट जैसा दिखता है, लेकिन एक और रीफ्रेश पर, यह ठीक काम करता है। यह क्रोम में अपेक्षा के अनुसार काम नहीं करता है।
मेरा आवेदन नहीं LI तत्वों प्री-पॉप्युलेट करता है पृष्ठ लोड होने - यह जावास्क्रिप्ट का उपयोग करता, इस प्रकार है:
function populateUnsetAnswers(unsetCategoryAnswers) {
for (i in unsetCategoryAnswers) {
if (unsetCategoryAnswers.hasOwnProperty(i.toString())) {
$('#categoryQuestionArea #possibleAnswers').append(
categoryAnswerLiTag(unsetCategoryAnswers[i])
);
}
}
}
function categoryAnswerLiTag(unsetCategoryAnswer) {
var html = '<li id="' + unsetCategoryAnswer.id + '">';
if (unsetCategoryAnswer.image) {
html += '<img class="categoryAnswerImage" title="';
html += unsetCategoryAnswer.text;
html += '" src="/trainingdividend/rest/streaming/';
html += unsetCategoryAnswer.image.fileName;
html += '" style="height: ';
html += unsetCategoryAnswer.image.height;
html += ';';
html += '" />';
} else {
html += unsetCategoryAnswer.text
}
html += '</li>';
return html;
}
पेज लोड हो रहा है किया जाता है, तो एक ajax अनुरोध सभी को हासिल करेगा वस्तुओं को एलआई तत्वों में डालने के लिए, और फिर ऊपर दिए गए पहले कार्य को कॉल करें।
LI तत्वों की सब के बाद बनाई गई हैं, मैं इसे बाद सही इस फ़ंक्शन को कॉल करें:
function resize() {
var currentHeight, totalHeight;
totalHeight = 0;
$("#categoryQuestionArea ul").children().each(function() {
currentHeight = $(this).height();
totalHeight += currentHeight + 13;
});
$("#categoryQuestionArea ul").height(totalHeight);
$("#categoryQuestionArea div#separator").css("padding-top", (totalHeight/2) + "px");
}
वहाँ किसी भी तरह से jQuery बताने के लिए है, "आकार परिवर्तन() LI के के सभी जब तक कॉल न करें पूरी तरह से लोड और छवियों ने प्रस्तुत किया है "?
मुझे लगता है कि क्या हो रहा है यह है कि प्रारंभिक पृष्ठ लोड पर, इन LI तत्वों की ऊंचाई 0 या एक छोटा मान है क्योंकि इसमें छवि नहीं है, इसलिए मेरा आकार बदलने का कार्य गलत परिणाम की गणना कर रहा है (मैंने इसका परीक्षण किया कुछ चेतावनी बयान के साथ)। जब तक एलआईएस आबादी हो जाती है और छवियां लोड हो जाती हैं, तो कुल ऊंचाई की गणना ठीक होती है।
कोई मदद? धन्यवाद
जहां आप अपने कोड में बिल्कुल 'आकार बदलें) फ़ंक्शन को कॉल कर रहे हैं? जो मैं यहां देख सकता हूं, उससे आप इसे 'populateUnsetAnswers()' के अंत में कॉल कर सकते हैं और 'जावास्क्रिप्ट' आकार का आकार बदल देगा। –
@ केमालफैडिलह हां, आकार बदलें() को पहले से ही populateUnsetAnswers() के बाद बुलाया जाता है। यह केवल तभी फ़ायरफ़ॉक्स में काम करता है जब आप पेज रीफ्रेश करते हैं। यह अभी भी क्रोम में बिल्कुल काम नहीं करता है। –
@FireEmblem आपको ऊंचाई को सेट करने की आवश्यकता नहीं है, कॉलम सामग्री फिट करने के लिए लंबवत विस्तारित होगा। –