قم بتمرير قيمة سلسلة الاستعلام لفتح علامة تبويب jquery ذات الصلة في الصفحة التالية

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

سؤال

لدي رابط في الصفحة 1 مع سلسلة الاستعلام href="page2.html?selected=1".

ما أريده هو عندما أنقر على هذا الرابط في الصفحة 1، فيجب أن ينتقل إلى الصفحة 2.html ويستخدم قيمة سلسلة الاستعلام هذه لفتح علامة تبويب مسج معينة (باستخدام علامات تبويب مسج)؟؟

الوظيفة هي كما يلي:

$(function selectTab(indexId){
    var activeTab = location.href;
    var activeTabId = activeTab.substring(activeTab.lastIndexOf('=') + 1);
    $('#tabs').tabs('select', indexId);
})

من فضلك قل لي كيف يمكنني حل هذه المشكلة؟؟

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

المحلول

يمكنك القيام بذلك بهذه الطريقة ، لكن متغيراتك مختلطة ، سيكون الأمر كذلك:

$(function selectTab(){
    var activeTab = location.href;
    var activeTabId = activeTab.substring(activeTab.lastIndexOf('=') + 1);
    $('#tabs').tabs('select', activeTabId);
})

لكن, ، هناك بالفعل دعم مدمج لهذا ، فقط استخدم عنوان URL مثل هذا:

page2.html?#tabPanelID

على سبيل المثال إذا كانت علامة التبويب تحتوي على رابط من href="#tab3" هذا يذهب إلى <div id="tab3"> ثم سيكون عنوان URL الخاص بك page2.html#tab3, ، تحقق من هذا الرابط: http://jqueryui.com/demos/tabs/#tabs-3

انظر كيف يتم فتحه مباشرة إلى علامة التبويب الثالثة في العرض التوضيحي؟ هذا هو السلوك المدمج.

نصائح أخرى

جرب هذه الطريقة...أعلم أن الأمر طويل بعض الشيء ولكن على الأقل يمكنك رؤية كل مرحلة من مراحل كيفية تنفيذ علامات تبويب JS.

أضف حكاية إلى سلسلتك بمجرد إعادة تحميل الصفحة...لقد فعلت علامة التبويب 222.

ثم قم بتعريف div لمحتوى علامة التبويب الخاصة بك والتي قمت بها #tab_2

قم بتغيير علامة القائمة href إلى ما لديك ...

$(document).ready(function(){

  if (/tab222/.test(self.location.href)) {
    $('#p_tabs li').removeClass('active');
    $('#p_tabs li a[href="#tab_2"]').parent().addClass('active');
    $('#tab_one').removeClass('active');
    $('#tab_two').addClass('active');
  };

});

فوالا!امل ان يساعد.

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