تفضيلات التحكم في الارتباط مع عناصر التحكم في زر الراديو و jQuery

StackOverflow https://stackoverflow.com/questions/825189

  •  05-07-2019
  •  | 
  •  

سؤال

لأي روابط مع فئة CSS معينة ، أود التحكم في ما إذا كانت الروابط مفتوحة في نفس النافذة أو نافذة جديدة أو نافذة منبثقة (باستخدام OnClick) ، استنادًا إلى اختيار المستخدم من مجموعة من أزرار الراديو- ثم احفظ هذا الاختيار في ملف تعريف الارتباط (كل استخدام jQuery). أي شخص يعرف كيف ينجز هذا؟

هل كانت مفيدة؟

المحلول

ربما هذا هو ما سأفعله ... (ستحتاج إلى jQuery Cookie Plugin):

<script language="javascript">
$(function() {
    if($.cookie('link_pref')) {
    var link_pref = $.cookie('link_pref');
        $('#link_options_form :radio[value="'+ link_pref+'"]')
        .attr('checked','checked');
    }
    $.cookie('link_pref',$('#link_options_form :radio:checked').val(), {expires: 0});
    $('#link_options_form :radio').unbind('click').bind('click',function() {
         $.cookie('link_pref', $(this).val(), {expires: 0});
    });
    $('a').unbind('click').bind('click',function() {
        var link_pref = $.cookie('link_pref');
        var href = $(this).attr('href');
        var link_txt = $(this).text();
        switch(link_pref) {
            case 'new':
                $(this).attr('target','_blank');
                return true;
            case 'pop':
                window.open(href,link_txt,'width=640,height=480,toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,copyhistory=yes,resizable=yes');
                return false;
            case 'greybox':
                // Other options found here: 
                // http://orangoo.com/labs/greybox/advance_usage.html
                GB_show(link_txt, href);
                return false;
            default:
                $(this).attr('target','_self');
                return true;
        }
    });
});
</script>

<form id="link_options_form">
    <label><input type="radio" name="link_options" value="same" /> Open in Same Window</label>
    <label><input type="radio" name="link_options" value="new" /> Open in New Window</label>
    <label><input type="radio" name="link_options" value="pop" /> Open in Pop-Up Window</label>
    <label><input type="radio" name="link_options" value="greybox" /> Open in Greybox</label>
</form>

يحرر: آسف لأنني لم أختبرها أولاً. كان لدي بعض الأخطاء المطبعية هناك ونسيت ضبط ملف تعريف الارتباط لتبدأ (آسف). لقد اختبرته وهو يعمل الآن مع HTML الخاص بك. استخدم الكود المعدل حديثًا أعلاه. ؛-)

تحرير 2: أضفت رابطًا مباشرًا إلى المكون الإضافي لملف تعريف الارتباط فقط في حالة عدم استخدامك لسبب ما.

تحرير 3: شخصياً ، لن أقوم بتعيين زر الراديو كما تم فحصه في JavaScript ... يمكنك الوصول إلى نفس ملف تعريف الارتباط في لغة جانب الخادم الخاصة بك. لكنني قدمت طريقة يجب أن تعمل في الكود الذي تم تحريره حديثًا.

تحرير 4: تم إصلاح الإعداد الأولي لخلة أزرار الراديو التي تم فحصها. يجب أن تعمل حقا هذه المرة. بصدق. O_0

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top