2014-11-21 51 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