2015-07-11 49 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); 
..... 
}); 

衝突得到解決。

相關問題