2017-11-29 2 views
0

jQuery UIダイアログ:http://jqueryui.com/dialog/を使用して、ウェブページに説明テキストを表示します。これは私の現在のコードです:jQuery UI:Uncaught TypeError:未定義の 'nodeType'プロパティを読み取ることができません

.aspxの:

<span id="bullAide" runat="server" class="glyphicon glyphicon-info-sign text-info" style="cursor: pointer;"></span> 
<div id="dialog" runat="server" meta:resourcekey="TitreCourriel"> 
    <p id="txtDescription" runat="server"><%=GetLocalResourceObject("TexteCourriel.Text").ToString()%></p> 
</div> 

の.js:

$("[id$=dialog]").dialog({ 
    autoOpen: false, 
    position: { 
     of: $('#bullAide'), 
    }, 
}); 
$("[id$=bullAide]").click(function (event) { 
    setTimeout(function() { $("[id$=dialog]").dialog("open"); }, 1); 
    var position = $(this).offset(); 
    $("[id$=dialog]").parent().css("left", position.left + 30); 
    $("[id$=dialog]").parent().css("top", position.top - 30); 
    setTimeout(function() { $("[id$=dialog]").parent().css("width", "auto"); }, 1); 
}); 

Howerver、私はこのエラーを持っている:キャッチされない例外TypeError:

Cannot read property 'nodeType' of undefined 
    at s (http://localhost/FIAF.PES.Particuliers/scripts/jquery-ui.min.js:6:11536) 
    at jQuery.fn.init.t.fn.position (http://localhost/FIAF.PES.Particuliers/scripts/jquery-ui.min.js:6:13371) 
    at t.(anonymous function).(anonymous function)._position (http://localhost/FIAF.PES.Particuliers/scripts/jquery-ui.min.js:11:7019) 
    at t.(anonymous function).(anonymous function)._position (http://localhost/FIAF.PES.Particuliers/scripts/jquery-ui.min.js:6:4499) 
    at t.(anonymous function).(anonymous function).open (http://localhost/FIAF.PES.Particuliers/scripts/jquery-ui.min.js:11:937) 
    at t.(anonymous function).(anonymous function).open (http://localhost/FIAF.PES.Particuliers/scripts/jquery-ui.min.js:6:4499) 
    at HTMLDivElement.<anonymous> (http://localhost/FIAF.PES.Particuliers/scripts/jquery-ui.min.js:6:5446) 
    at Function.each (http://localhost/FIAF.PES.Particuliers/scripts/jquery-3.1.1.js:368:19) 
    at jQuery.fn.init.each (http://localhost/FIAF.PES.Particuliers/scripts/jquery-3.1.1.js:157:17) 
    at jQuery.fn.init.t.fn.(anonymous function) [as dialog] (http://localhost/FIAF.PES.Particuliers/scripts/jquery-ui.min.js:6:5329) 

私は本当にいけません何が間違っているかを知る

+0

jquery uiの互換性のないバージョンを使用している可能性があります...あなたのjquery uiバージョンを教えてください。....多分あなたは高すぎるjqueryのバージョンを使用しています。 – Hackerman

+0

私はjquery-3.1.1とjquery-ui-1.12.0を使用します。 –

+0

特に、それらの(奇妙な) "id"がセレクタで終わっているのは、idsが一致する "end"と同じ場合です。そして、 'setTimeout()'コールは何ですか? – Andreas

答えて

0

実施例:https://jsfiddle.net/Twisty/q0kebgwd/

HTML

<p style="display: inline-block;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent arcu nisi, maximus eget lectus at, egestas pellentesque lectus. Donec varius tristique nunc eu dapibus. Phasellus urna massa, malesuada eu mi eget, vehicula cursus massa. Donec eu fringilla mi. Mauris leo tellus, vestibulum at ex sit amet, aliquam tincidunt lectus. Fusce blandit ex non sapien tempor fringilla. Donec leo ante, faucibus sed suscipit quis, bibendum convallis nulla. Suspendisse blandit dignissim ipsum. Suspendisse consectetur, quam sit amet placerat rhoncus, nisl nunc efficitur magna, ut rhoncus lectus felis ut velit.<span id="bullAide" class="glyphicon glyphicon-info-sign text-info" style="cursor: pointer; margin-left: 3px;"></span></p> 
<div id="ContentPlaceHolder1_dialog" runat="server" meta:resourcekey="TitreCourriel"> 
    <p id="txtDescription" runat="server">This is a test</p> 
</div> 

JavaScriptが

$(function() { 
    var $diag = $("[id$='dialog']") 
    $diag.dialog({ 
    autoOpen: false, 
    position: { 
     my: "left top", 
     at: "left+30 top-30", 
     of: $("[id$='bullAide']") 
    }, 
    }); 
    $("[id$='bullAide']").click(function(event) { 
    $diag.dialog("open"); 
    }); 
}); 

これは、あなたが適切にダイアログを配置するのに役立ちます。このエラーは、親が見つからないか、コード内のDOMが上がる問題の可能性があります。このコードを削除するとうまくいくはずです。私はあなたのライブラリのバージョンに合わせて例を設定しました。

関連する問題