2016-03-01 37 views
-1

我只是試圖打開一個JQ對話框,並得到一個JS TypeError(不是函數)。
這裏的DIV:Dialog給出TypeError

<div id="change_dialog" style="display:none"> 
     Change the number of attendees<br /> for <span id="name_to_change"> </span>? 
     <select id="change_select"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
     <option value="4">4</option> 
     <option value="5">5</option> 
     <option value="6">6</option> 
     <option value="7">7</option> 
     <option value="8">8</option> 
     <option value="9">9</option> 
     <option value="10">10</option> 
     </select></p> 
     <input type="button" id="change_qty_button" value="Change" /> &nbsp;<input type="button" id="change_abort" value="Cancel" /> 
    </div> 

而這裏的JS:

$('#change_button').click(function(){ 
    $(".res_button").each(function(){ 
     if ($(this).prop('checked')){ 
      $id = $(this).val(); 
      change_name=$("#"+$id).val(); 
     } 
    }); 
    $('#name_to_change').html(change_name); 
    $('#change_dialog').dialog('open'); 
    $('.button_class').hide(); 
    return false; 
}); 

$('#change_dialog').dialog({ 
    autoOpen: false, 
    modal: false, 
    minWidth: 180, 
    closeOnEscape: true, 
    title: "Attendee Quantity Change", 
    show:{ effect: "fold", duration: 1000 }, 
    hide:{ effect: "fold", duration: 1000 } 
}); 

這裏的錯誤行:

TypeError: $(...).dialog is not a function

到錯誤的點線是:$('#change_dialog').dialog({

我沒有看到任何錯誤,在任何地方。我已經評論了kazoo上的各種線路來嘗試隔離錯誤。即使函數存在但是空了,我仍然會得到相同的錯誤。

+4

您是否包含jQuery UI,'dialog()'不是jQuery的一部分 – adeneo

+1

^this。錯誤告訴你你需要知道的一切。你不包括jQuery UI。 – j08691

+0

[Error:TypeError:$(...)。對話框可能的重複不是函數](http://stackoverflow.com/questions/26016562/error-typeerror-dialog-is-not-a-function) – PRVS

回答

0

如上所述,您需要包含jQuery UI庫,其託管在https://code.jquery.com/ui/。此外,你的JavaScript中有一個小錯誤,會給你一個未定義的變量錯誤。

的JavaScript

$(document).ready(function() { 
    $('#change_button').click(function(){ 
     var change_name; //if not included, is undefined at line 10 
     $(".res_button").each(function(){ 
      if ($(this).prop('checked')){ 
       $id = $(this).val(); 
       change_name = $("#"+$id).val(); 
      } 
     }); 
     $('#name_to_change').html(change_name); //this was undefined 
     $('#change_dialog').dialog('open'); 
     $('.button_class').hide(); 
     return false; 
    }); 

你可以看到它在此琴工作:https://jsfiddle.net/2pkzsxun/1/

希望幫助!

+0

定義了兩個「未定義」變量在劇本的頂部 - 抱歉,我把他們排除在問題之外。另外,jQuery UI庫包含在頁面的頂部。我不明白爲什麼document.ready應該是必要的。這是「始終有效」的情況之一,但突然沒有任何改變就停止了工作。然而,爲了它的樂趣,我把這個函數放到了頁面上已經存在的document.ready函數中。沒有雪茄。同樣的錯誤。 – Mffffffffffffff

+0

事實證明,在另外的調查中,jquery ui被評論了 - 誰知道怎麼做! Mffffffffffffff

相關問題