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

از ویکی داد
پرش به ناوبری پرش به جستجو
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
برچسب: واگردانی دستی
 
(۵ نسخهٔ میانیِ ایجادشده توسط همین کاربر نشان داده نشد)
خط ۲: خط ۲:


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


خط ۱۰: خط ۲۰:
         container.find( 'li' ).each( function () {
         container.find( 'li' ).each( function () {


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


         } );
         } );


     } );
     });




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


         var option = $( this );
         var option = $( this );
         var box = option.closest( '.wd-test' );
         var box = option.closest( '.wd-test' );
        /*
        * اگر پاسخ صحیح قبلاً انتخاب شده،
        * تست تمام شده است.
        */


         if ( box.hasClass( 'wd-test-finished' ) ) {
         if ( box.hasClass( 'wd-test-finished' ) ) {
خط ۳۱: خط ۴۹:
         }
         }


        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 retry = box.find( '.wd-test-retry' );
 
         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 = '';
         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'
        );
 
 
        /*
        * نمایش پیام نتیجه
        */


         result.show();
         result.show();


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


             option.addClass( 'wd-correct' );
        if (
             selectedLetter === correctLetter
        ) {


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


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


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


        }


        /*
            /*
        * پاسخ غلط
            * نمایش پاسخ و تحلیل
        */
            */
        else {


             option.addClass( 'wd-wrong' );
             answerBox
                .stop(
                    true,
                    true
                )
                .slideDown(
                    250
                );


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


             answerBox.hide();
             /*
            * پایان تست
            */


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


         }
         }


    } );


        /*
        * =================================================
        * پاسخ غلط
        * =================================================
        */


    /*
        else {
    * دوباره تلاش کن
    */
    $( document ).on( 'click', '.wd-test-retry-button', function () {


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


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


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


        box.find( '.wd-test-result' ).hide();


        box.find( '.wd-test-answer' ).hide();
            /*
            * عمداً پاسخ صحیح را نمایش نمی‌دهیم.
            *
            * کاربر می‌تواند گزینه دیگری را انتخاب کند.
            */


         box.find( '.wd-test-retry' ).hide();
         }
 
        box.find( '.wd-test-result-message' )
            .removeClass( 'wd-result-correct wd-result-wrong' )
            .text( '' );


     } );
     });


} );
} );

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

$( 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(
                    '✕ پاسخ شما نادرست است.'
                );


            /*
             * عمداً پاسخ صحیح را نمایش نمی‌دهیم.
             *
             * کاربر می‌تواند گزینه دیگری را انتخاب کند.
             */

        }

    });

} );