2013-02-26 69 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

相关问题