مدیاویکی:Common.js: تفاوت میان نسخه‌ها

از ویکی داد
پرش به ناوبری پرش به جستجو
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۲۳: خط ۲۳:
         var box = option.closest( '.wd-test' );
         var box = option.closest( '.wd-test' );


        /*
        * اگر تست قبلاً با پاسخ صحیح تمام شده،
        * دیگر امکان انتخاب وجود ندارد.
        */
         if ( box.hasClass( 'wd-test-finished' ) ) {
         if ( box.hasClass( 'wd-test-finished' ) ) {
             return;
             return;
خط ۳۶: خط ۴۰:
         var selectedLetter = '';
         var selectedLetter = '';


        /*
        * تشخیص گزینه انتخاب‌شده
        */
         if ( selectedText.indexOf( 'الف' ) === 0 ) {
         if ( selectedText.indexOf( 'الف' ) === 0 ) {
             selectedLetter = 'الف';
             selectedLetter = 'الف';
         } else if ( selectedText.indexOf( 'ب' ) === 0 ) {
         } else if ( selectedText.indexOf( 'ب' ) === 0 ) {
             selectedLetter = 'ب';
             selectedLetter = 'ب';
         } else if ( selectedText.indexOf( 'ج' ) === 0 ) {
         } else if ( selectedText.indexOf( 'ج' ) === 0 ) {
             selectedLetter = 'ج';
             selectedLetter = 'ج';
         } else if ( selectedText.indexOf( 'د' ) === 0 ) {
         } else if ( selectedText.indexOf( 'د' ) === 0 ) {
             selectedLetter = 'د';
             selectedLetter = 'د';
         }
         }


        /*
        * تبدیل «گزینه ب» به «ب»
        */
         var correctLetter = answer
         var correctLetter = answer
             .replace( 'گزینه', '' )
             .replace( 'گزینه', '' )
خط ۵۱: خط ۷۱:
             .trim();
             .trim();


        /*
        * نمایش انتخاب کاربر
        */
         option.addClass( 'wd-selected' );
         option.addClass( 'wd-selected' );


خط ۶۸: خط ۹۲:
                 .text( '✓ پاسخ شما صحیح است.' );
                 .text( '✓ پاسخ شما صحیح است.' );


             answerBox.stop( true, true ).slideDown( 250 );
             answerBox
                .stop( true, true )
                .slideDown( 250 );


             box.addClass( 'wd-test-finished' );
             box.addClass( 'wd-test-finished' );
خط ۷۷: خط ۱۰۳:
         /*
         /*
         * پاسخ غلط
         * پاسخ غلط
        *
        * پاسخ صحیح نمایش داده نمی‌شود.
        * کاربر می‌تواند گزینه دیگری را امتحان کند.
         */
         */
         else {
         else {

نسخهٔ ۱۰ سپتامبر ۲۰۲۶، ساعت ۱۲:۵۲

$( function () {

    /*
     * تبدیل گزینه‌های لیست به گزینه‌های قابل کلیک
     */
    $( '.wd-test-options' ).each( function () {

        var container = $( this );

        container.find( 'li' ).each( function () {
            $( this ).addClass( 'wd-test-option' );
        } );

    });


    /*
     * انتخاب گزینه
     */
    $( document ).on( 'click', '.wd-test-option', function () {

        var option = $( this );
        var box = option.closest( '.wd-test' );

        /*
         * اگر تست قبلاً با پاسخ صحیح تمام شده،
         * دیگر امکان انتخاب وجود ندارد.
         */
        if ( box.hasClass( 'wd-test-finished' ) ) {
            return;
        }

        var answer = $.trim( box.attr( 'data-answer' ) );
        var selectedText = $.trim( option.text() );

        var result = box.find( '.wd-test-result' );
        var message = box.find( '.wd-test-result-message' );
        var answerBox = box.find( '.wd-test-answer' );

        var selectedLetter = '';


        /*
         * تشخیص گزینه انتخاب‌شده
         */
        if ( selectedText.indexOf( 'الف' ) === 0 ) {

            selectedLetter = 'الف';

        } else if ( selectedText.indexOf( 'ب' ) === 0 ) {

            selectedLetter = 'ب';

        } else if ( selectedText.indexOf( 'ج' ) === 0 ) {

            selectedLetter = 'ج';

        } else if ( selectedText.indexOf( 'د' ) === 0 ) {

            selectedLetter = 'د';

        }


        /*
         * تبدیل «گزینه ب» به «ب»
         */
        var correctLetter = answer
            .replace( 'گزینه', '' )
            .replace( ':', '' )
            .trim();


        /*
         * نمایش انتخاب کاربر
         */
        option.addClass( 'wd-selected' );

        result.show();


        /*
         * پاسخ صحیح
         */
        if ( selectedLetter === correctLetter ) {

            option.addClass( 'wd-correct' );

            message
                .removeClass( 'wd-result-wrong' )
                .addClass( 'wd-result-correct' )
                .text( '✓ پاسخ شما صحیح است.' );

            answerBox
                .stop( true, true )
                .slideDown( 250 );

            box.addClass( 'wd-test-finished' );

        }


        /*
         * پاسخ غلط
         *
         * پاسخ صحیح نمایش داده نمی‌شود.
         * کاربر می‌تواند گزینه دیگری را امتحان کند.
         */
        else {

            option.addClass( 'wd-wrong' );

            message
                .removeClass( 'wd-result-correct' )
                .addClass( 'wd-result-wrong' )
                .text( '✕ پاسخ شما نادرست است.' );

        }

    });

});