2013-02-26 55 views
0

我試圖在引導上創建可配置的模態窗口。我的意圖是通過創建函數參數動態地填充模態。在頁腳按鈕上自動調用模態調用函數單擊

的一個參數是報頭(titolo),第二(messaggio)的標題模態主體的文本可以是HTML或純文本中,第三(conferma)是調用的函數,如果確認按鈕(如果此功能存在,則創建)單擊,第四個(callback)是在模態窗口關閉時調用的回調函數。

不幸的是我不能工作,你能幫助我嗎?

function apriModal(titolo,messaggio,conferma,callback){ 
    jQuery.noConflict(); 
    var re=new RegExp("</?\w+\s+[^>]*>"); 
    $("#modalHeaderTitle").text(titolo); 
    if(messaggio.match(re)){ 
     $("#modalBodyText").html(messaggio); 
    } 
    else{ 
     $("#modalBodyText").html("<p>"+messaggio+"</p>"); 
    } 
    (typeof conferma == 'function') ? $("#modalConfirm").show() : $("#modalConfirm").hide(); 
    $("#finestraModal").modal('show'); 
    $("#modalConfirm").click(function(){ 
     if(conferma){ 
      $("#finestraModal").modal('hide'); 
      conferma.apply(); 
     } 
    }); 
    $("#modalClose").click(function(){ 
     if(callback){ 
      callback.apply(); 
     } 
     $("#finestraModal").modal('hide'); 
    }); 
} 

和這裏的模式的基本的html:

<div id="finestraModal" class="modal hide fade"> 
    <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
     <h3 id="modalHeaderTitle"></h3> 
    </div> 
    <div class="modal-body" id="modalBodyText"> 
    </div> 
    <div class="modal-footer"> 
     <a href="#" id="modalClose" class="btn">Chiudi</a> 
     <a href="#" id="modalConfirm" class="btn btn-primary">Conferma</a> 
    </div> 
</div> 

JSFiddle

回答

0

您已經使用jQuery.noConflict()但繼續在下面的腳本使用$

function apriModal(titolo,messaggio,conferma,callback){ 
    jQuery.noConflict(); 

應更改爲

function apriModal(titolo,messaggio,conferma,callback){ 
    var $ = jQuery.noConflict(); // or other variable name 

如果你想使用其他圖書館,你可以指定jQuery.noConflict()另一個變量如在我的演示或使用jQuery,當你需要的。

參考:http://api.jquery.com/jQuery.noConflict/

工作演示:http://jsfiddle.net/indream/X3EnA/1/

+0

我不知道。我已經花了幾個小時檢查代碼..太感謝你了!!!!你爲我節省了很多小時的絕望!但我仍然有問題。每次打開模式時,我的代碼都會附加一個新聞事件處理程序,所以如果我打開模式3次,我將執行3次賦值和回調函數。我該如何解決這個問題? – 2013-02-27 11:22:15

+0

您可以在.click()之前使用'.off()'來移除事件處理程序。演示:http://jsfiddle.net/indream/X3EnA/2/ – inDream 2013-02-28 19:27:39

+0

它工作完美!非常感謝!!! – 2013-03-06 11:26:17

相關問題