مدیاویکی:Common.js: تفاوت میان نسخهها
بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش برچسب: برگرداندهشده |
||
| خط ۱: | خط ۱: | ||
(function () { | $( document ).on( | ||
'click', | |||
'.wd-test-options li', | |||
function (event) { | |||
event.preventDefault(); | |||
event.stopPropagation(); | |||
var option = $( this ); | |||
var test = option.closest( '.wd-test' ); | |||
if ( !test.length ) { | |||
return; | |||
} | |||
if ( test.hasClass( 'wd-test-finished' ) ) { | |||
return; | |||
} | |||
/* ========================================= | |||
فقط گزینههای همین تست | |||
========================================= */ | |||
var testOptions = test | |||
.children() | |||
.find( '.wd-test-options' ) | |||
.first() | |||
.children( 'li' ); | |||
/* ========================================= | |||
پاسخ انتخابشده | |||
========================================= */ | |||
var selectedText = $.trim( | |||
option.text() | |||
); | |||
test. | var correctAnswer = $.trim( | ||
test.attr( 'data-answer' ) || '' | |||
); | |||
/* ========================================= | |||
حذف انتخاب قبلی | |||
========================================= */ | |||
testOptions.removeClass( | |||
'wd-test-selected wd-test-correct wd-test-wrong' | |||
); | |||
option.addClass( | |||
'wd-test-selected' | |||
); | |||
/* ========================================= | |||
استخراج حرف گزینه | |||
========================================= */ | |||
var selectedLetter = selectedText.replace( | |||
/^[\s]*([الفبجد])[\s\)\.:\-ـ]*/i, | |||
'$1' | |||
); | |||
if ( selectedLetter === selectedText ) { | |||
selectedLetter = | |||
selectedText.charAt( 0 ); | |||
} | |||
var answerLetter = correctAnswer.replace( | |||
/^[\s]*([الفبجد])[\s\)\.:\-ـ]*/i, | |||
'$1' | |||
); | |||
if ( answerLetter === correctAnswer ) { | |||
answerLetter = | |||
correctAnswer.charAt( 0 ); | |||
} | |||
var isCorrect = | |||
$.trim( selectedLetter ) === | |||
$.trim( answerLetter ); | |||
/* ========================================= | |||
پیدا کردن نتیجه فقط در همین تست | |||
========================================= */ | |||
var result = test | |||
.children( 'div' ) | |||
.has( '.wd-test-options' ) | |||
.first() | |||
.children( '.wd-test-result' ); | |||
/* | |||
* اگر ساختار مرورگر متفاوت بود، | |||
* فقط اولین نتیجه مربوط به همین تست را بگیر. | |||
*/ | |||
if ( !result.length ) { | |||
result = test | |||
.children( 'div' ) | |||
.find( '> .wd-test-result' ) | |||
.first(); | |||
} | |||
var resultMessage = | |||
result.children( | |||
'.wd-test-result-message' | |||
test | |||
); | ); | ||
var answer = | |||
result.children( | |||
'.wd-test-answer' | |||
); | ); | ||
/* ========================================= | |||
نمایش نتیجه | |||
========================================= */ | |||
result.show(); | |||
if ( isCorrect ) { | |||
resultMessage | |||
.text( | |||
'✓ پاسخ شما صحیح است.' | |||
) | |||
.css({ | |||
color: '#168477' | |||
}); | }); | ||
option.addClass( | |||
'wd-test-correct' | |||
); | |||
} else { | |||
resultMessage | |||
.text( | |||
'✕ پاسخ شما نادرست است.' | |||
) | |||
.css({ | |||
color: '#b44a4a' | |||
}); | }); | ||
option.addClass( | |||
'wd-test-wrong' | |||
); | |||
/* فقط گزینههای همین تست */ | |||
testOptions.each( | |||
function () { | |||
var item = $( this ); | |||
var item = $(this); | |||
var itemText = | var itemText = | ||
$.trim(item.text()); | $.trim( | ||
item.text() | |||
); | |||
var | var itemLetter = | ||
itemText. | itemText.replace( | ||
/^[\ | /^[\s]*([الفبجد])[\s\)\.:\-ـ]*/, | ||
'$1' | |||
); | ); | ||
if ( | |||
itemLetter === itemText | |||
) { | |||
itemLetter = | |||
itemText.charAt( 0 ); | |||
} | |||
if ( | if ( | ||
$.trim(itemLetter) === | $.trim( | ||
answerLetter | itemLetter | ||
) === | |||
$.trim( | |||
answerLetter | |||
) | |||
) { | ) { | ||
item.addClass( | |||
item. | 'wd-test-correct' | ||
' | ); | ||
} | } | ||
}); | } | ||
); | |||
} | |||
/* ========================================= | |||
نمایش پاسخ و تحلیل فقط همین تست | |||
========================================= */ | |||
answer | |||
.stop( true, true ) | |||
.slideDown( 220 ); | |||
/* این تست تمام شده */ | |||
test.addClass( | |||
'wd-test-finished' | |||
); | |||
} | |||
); | |||
/* ========================================================= | |||
مشاهده / بستن متن نسخه قانون | |||
========================================================= */ | |||
$( document ).on( | |||
'click', | |||
'.wd-version-toggle', | |||
function () { | |||
var button = $( this ); | |||
var card = button.closest( | |||
'.wd-version-history-card' | |||
); | |||
var text = card.find( | |||
'.wd-version-text' | |||
); | |||
var icon = button.find( | |||
'.wd-version-toggle-icon' | |||
); | |||
var label = button.find( | |||
'.wd-version-toggle-label' | |||
); | |||
if ( text.is( ':visible' ) ) { | |||
text | |||
.stop( true, true ) | |||
.slideUp( 180 ); | |||
icon.text( '+' ); | |||
label.text( | |||
'مشاهده متن' | |||
); | |||
} else { | |||
text | |||
.stop( true, true ) | |||
.slideDown( 220 ); | |||
icon.text( '−' ); | |||
label.text( | |||
'بستن متن' | |||
); | |||
} | } | ||
} | } | ||
); | |||
نسخهٔ ۱۴ سپتامبر ۲۰۲۶، ساعت ۱۳:۲۸
$( document ).on(
'click',
'.wd-test-options li',
function (event) {
event.preventDefault();
event.stopPropagation();
var option = $( this );
var test = option.closest( '.wd-test' );
if ( !test.length ) {
return;
}
if ( test.hasClass( 'wd-test-finished' ) ) {
return;
}
/* =========================================
فقط گزینههای همین تست
========================================= */
var testOptions = test
.children()
.find( '.wd-test-options' )
.first()
.children( 'li' );
/* =========================================
پاسخ انتخابشده
========================================= */
var selectedText = $.trim(
option.text()
);
var correctAnswer = $.trim(
test.attr( 'data-answer' ) || ''
);
/* =========================================
حذف انتخاب قبلی
========================================= */
testOptions.removeClass(
'wd-test-selected wd-test-correct wd-test-wrong'
);
option.addClass(
'wd-test-selected'
);
/* =========================================
استخراج حرف گزینه
========================================= */
var selectedLetter = selectedText.replace(
/^[\s]*([الفبجد])[\s\)\.:\-ـ]*/i,
'$1'
);
if ( selectedLetter === selectedText ) {
selectedLetter =
selectedText.charAt( 0 );
}
var answerLetter = correctAnswer.replace(
/^[\s]*([الفبجد])[\s\)\.:\-ـ]*/i,
'$1'
);
if ( answerLetter === correctAnswer ) {
answerLetter =
correctAnswer.charAt( 0 );
}
var isCorrect =
$.trim( selectedLetter ) ===
$.trim( answerLetter );
/* =========================================
پیدا کردن نتیجه فقط در همین تست
========================================= */
var result = test
.children( 'div' )
.has( '.wd-test-options' )
.first()
.children( '.wd-test-result' );
/*
* اگر ساختار مرورگر متفاوت بود،
* فقط اولین نتیجه مربوط به همین تست را بگیر.
*/
if ( !result.length ) {
result = test
.children( 'div' )
.find( '> .wd-test-result' )
.first();
}
var resultMessage =
result.children(
'.wd-test-result-message'
);
var answer =
result.children(
'.wd-test-answer'
);
/* =========================================
نمایش نتیجه
========================================= */
result.show();
if ( isCorrect ) {
resultMessage
.text(
'✓ پاسخ شما صحیح است.'
)
.css({
color: '#168477'
});
option.addClass(
'wd-test-correct'
);
} else {
resultMessage
.text(
'✕ پاسخ شما نادرست است.'
)
.css({
color: '#b44a4a'
});
option.addClass(
'wd-test-wrong'
);
/* فقط گزینههای همین تست */
testOptions.each(
function () {
var item = $( this );
var itemText =
$.trim(
item.text()
);
var itemLetter =
itemText.replace(
/^[\s]*([الفبجد])[\s\)\.:\-ـ]*/,
'$1'
);
if (
itemLetter === itemText
) {
itemLetter =
itemText.charAt( 0 );
}
if (
$.trim(
itemLetter
) ===
$.trim(
answerLetter
)
) {
item.addClass(
'wd-test-correct'
);
}
}
);
}
/* =========================================
نمایش پاسخ و تحلیل فقط همین تست
========================================= */
answer
.stop( true, true )
.slideDown( 220 );
/* این تست تمام شده */
test.addClass(
'wd-test-finished'
);
}
);
/* =========================================================
مشاهده / بستن متن نسخه قانون
========================================================= */
$( document ).on(
'click',
'.wd-version-toggle',
function () {
var button = $( this );
var card = button.closest(
'.wd-version-history-card'
);
var text = card.find(
'.wd-version-text'
);
var icon = button.find(
'.wd-version-toggle-icon'
);
var label = button.find(
'.wd-version-toggle-label'
);
if ( text.is( ':visible' ) ) {
text
.stop( true, true )
.slideUp( 180 );
icon.text( '+' );
label.text(
'مشاهده متن'
);
} else {
text
.stop( true, true )
.slideDown( 220 );
icon.text( '−' );
label.text(
'بستن متن'
);
}
}
);