2015-07-11 31 views
0

这是我的javascript函数是一个网页上呼吁:

<script> 
    $.fn.tabbedDialog = function() { 
     this.tabs(); 
     this.dialog({ 'minWidth': 300, 'minHeight': 300, 'draggable': true, 'autoOpen': false, 'resizable': false, }); 
     var $dialog = $(this).closest('.ui-dialog'); 
     this.find('.ui-icon-closethick').append($('.ui-dialog-titlebar-close')).css('position', 'static'); 
     $dialog.find('.ui-draggable-handle').append($('.ui-tabs-nav').removeClass().addClass('ui-tabs-nav')).addClass('ui-tabs'); 
     $dialog.find('.ui-dialog-title').remove(); 
    } 
    $('#xxx').tabbedDialog(); 

    $('a#show').click(function() { 
     if ($('#xxx').dialog("isOpen")) { 
      $('#xxx').dialog('close'); 
     } 
     else { 
      $('#xxx').dialog('open'); 
     } 
    }); 
</script> 

jQuery的对话与此脚本引发冲突的是全球性的,以我的模板在这一点上,当我尝试打开对话框,这是在其他定义的脚本javascript文件附加到我的模板:

this.$dialog.on('mousedown.dismiss.bs.modal', function() { 
     that.$element.one('mouseup.dismiss.bs.modal', function (e) { 
     if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true 
     }) 
    }) 

我曾尝试注释的代码行干扰对话,但它扭曲了我的项目的其他部分。请问我该如何解决这个对话冲突 请帮助!

+0

创建一个安装了两个插件的演示程序,该插件可以复制问题。可能需要重命名'$ .fn'方法中的一个 – charlietfl

+0

这没有多大意义,'this。$ dialog'和'jQuery.fn.dialog'没有任何关系,你必须实际上覆盖jQuery实例上的原型方法。你确定这个问题不仅仅是你没有加载jQuery UI。 – adeneo

+0

您好adeneo,你指的是jQuery.fn.dialog。 – Learner

回答

1

经过多次尝试后,能够​​解决我的问题。我加了这个,

jQuery(document).ready(function ($) { 
//functions here 
this.tabs(); 
$.noConflict(true); 
..... 
}); 

冲突得到解决。

相关问题