2013-07-27 51 views
1

這一個確實讓我感到困擾。我的控制檯中出現錯誤未捕獲的錯誤:在初始化之前無法在對話框中調用方法;試圖調用方法「關閉」jQuery - 初始化之前無法在對話框中調用方法

$(function() { 
    $('#search_all_notes_input').dialog({ 
     autoOpen: false, 
     show: { 
      effect: "blind", 
      duration: 1000 
     }, 
     hide: { 
      effect: "explode", 
      duration: 1000 
     } 
    }); 

    /* Make the Search div a button and open dialog on click */ 
    $("#search_all_button").button().click(function() {  
     $("#search_all_notes_input").dialog("open"); 
    }); 
}); 

$('#submit_search_all_button').click(function() { 
    var searchText = $('#search_all_text').val();  
    var query = location.search.split('='); 
    var urlMrn = query[1]; 
    formData = { mnr: urlMRN, search_text: searchText }; 
    console.log(formData); 
    //$.post('note_search.php', formData, getMatchedNotes(data)); 
    $(this).dialog('close'); 
}); 

任何想法?我在對話框div中使用了一個按鈕元素,而不是自定義對話框按鈕。此外,該腳本在我的HTML頁面

+2

'this'點擊事件裏面指的是按鈕本身,而不是模式/對話框,因此你不能稱之爲'就可以了close'。您需要在初始化對話框的DOM元素上調用'close'。您可以在'open'事件中執行:'$(「#search_all_notes_input」).dialog(「open」);',當您希望關閉它時定位到相同的元素。 – Ken

回答

1

的問題是你呼籲#submit_search_all_button按鈕dialog('close'),不是說你最初創建一個對話框#search_all_notes_input元素的最後加載。

相反的$(this).dialog('close');,使用此:

$('#search_all_notes_input').dialog('close'); 
相關問題