2014-11-21 64 views
0

下面的代码很好用。但只调用modal1以在调用popModal()时显示。 如何更改以下代码,其中id =='modal1'可以是'modal2','modal3'或'modal4'。如果我改变它的id值,但我不希望它是静态的 - 它可能是任何id值。思考? 感谢您的帮助提前。流行功能通过多个ID

var id= getUrlParameter('id'); 

if (id == 'modal1') { 
    popModal(); 
} 

function popModal() 
{ 
    $('#modal1').modal('show'); 
} 


function getUrlParameter(sParam) 
{ 

    var sPageURL = window.location.search.substring(1);  

    // var to open modal: url http://example.com?id=modal1 



    var sURLVariables = sPageURL.split('&'); 
    for (var i = 0; i < sURLVariables.length; i++) 
    { 
     var sParameterName = sURLVariables[i].split('='); 
     if (sParameterName[0] == sParam) 
     { 
      return sParameterName[1]; 
     } 
    } 
} 

下面是我调用看到弹出的JS:

$(document).ready(function() 
{ var id= getUrlParameter('id'); 
if (id == 'modal1') { popModal(); } }) 

我尝试以下,但它弹出式菜单相同的模式(modal1):

if (id == 'modal1' || id == 'modal2') { popModal();} function popModal() { $('#modal1' || '#modal2').modal('show'); }

而且还添加了以下内容:

$(document).ready(function() { var id= getUrlParameter('id'); if (id == 'modal1' || id == 'modal2'){ popModal(); } })

似乎无法得到它的工作 - 任何帮助表示赞赏。的ID

+0

我试过这个,但它同时弹出两个窗口。 '函数popModal() ;' – 2014-11-21 21:16:21

+0

我也试过{$( '#modal1,#modal2')模态( '秀')}: '功能popModal() { $( '身份证')。模态( '节目'); }'我想这肯定会起作用,但我明显错过了一些东西 - 为什么不把id的值拉到弹出窗口? – 2014-11-21 21:27:42

+0

最后 - 我也尝试了以下,但由于一些奇怪的原因,它总是采用默认情况下的第一个模式... 'function popModal() {('#modal1'||'#modal2')。modal ('显示'); }' – 2014-11-21 22:01:21

回答

1
//### 1 
if (id == 'modal1' || id == 'modal2' || id == 'modal3') { 
    popModal(id); 
} 

//### 2 
function popModal(id) 
{ 
    $('#'+id).modal('show'); //### 3 
} 

TEST

  1. 首先检查是否是适当
  2. 然后调用函数来显示模式窗口具有适当ID
  3. 以显示相应的模式,ID字符串必须以#开始
+0

请解释你的代码。您将获得更多投票,用户将更好地理解问题和解决方案。 – Sergio 2014-11-21 23:46:11

+0

好的。我添加了一个解释 – dm4web 2014-11-21 23:55:20

+0

完美。工作很好,解释很容易理解。 – 2014-11-22 03:30:11