var $arrow = $(this);
var $sibling = $arrow.siblings('span.arrow');
var $score = $arrow.siblings('span.score');
var vote = $arrow.hasClass('up') ? 'up' : 'down';
var alreadyVoted = $sibling.hasClass('voted');
if (!USER_LOGGED_IN)
{
alert('You must be logged into vote');
}
else if (!$arrow.hasClass('voted'))
{
if (alreadyVoted)
$sibling.removeClass('voted');
$arrow.addClass('voted');
$score[0].innerHTML = parseInt($score[0].innerHTML) + ((vote == 'up') ? 1 : -1);
}
मेरे पास एक अपवॉट और डाउनवोट बटन है। इन बटनों के बगल में एक 'वर्तमान स्कोर' दिखाया गया है, जब वोट डालने पर मैं वृद्धि/कमी करना चाहता हूं।जावास्क्रिप्ट में एक अपवॉट/डाउनवोट सिस्टम को कार्यान्वित करना लेकिन गणित को सही नहीं मिला
उदाहरण के लिए, यदि वे पृष्ठ लोड करते हैं और स्कोर 200
देखते हैं। जब वे ऊपर चढ़ते हैं, तो स्कोर 201
में बदल जाएगा। जब वे डाउनवोट करते हैं, तो स्कोर को 199
में बदलना होगा। क्यूं कर? क्योंकि अगर वे ऊपर उठने के बाद डाउनवोट करते हैं (उनके दिमाग को बदलते हैं) तो वोट को मूल स्कोर से जाना होगा। अपवॉटिंग द्वारा बनाए गए नए स्कोर नहीं।
असल में, यदि वे ऊपर हटते हैं और फिर डाउनवोट करते हैं, तो स्कोर वर्तमान में मूल स्कोर पर वापस जाता है। उनका वोट नहीं डाला गया है।
मैं मुसीबत यह काम कर रही है ताकि मतदान है हो रही है ...
प्रश्न में कोड के लिए बहुत बहुत धन्यवाद। मैं अब भी ऐसा कुछ करने की कोशिश कर रहा हूं, लेकिन मैं jQuery के साथ इतना अनुभवी नहीं हूं और सही तत्वों का चयन नहीं कर सका। – 11684