我以前问过这个问题,但我不认为我正在为我正在努力完成的工作做出正确的解释.
我的网站上有多个链接,我想从jquery ui模态对话窗口小部件中的链接中打开内容.
我试图使用’this’来引用用户动态选择的链接.
我在这里做错了什么?
我正在使用的代码如下:
<a href="index.cs.asp?Process=comments&id=1" id="test">comment #1</a> <a href="index.cs.asp?Process=comments&id=2" id="test">comment #2</a> <a href="index.cs.asp?Process=comments&id=3" id="test">comment #3</a> <div id="somediv"></div> <script type="text/javascript"> $(document).ready(function() { $("#somediv").load(this.getTrigger().attr("href")).dialog({ autoOpen: false,width: 400,modal: true }); $("#test").click(function(){$( "#somediv" ).dialog( "open" );}); }); </script>
解决方法
http://jsfiddle.net/qp7NP/
几个更改:将ID更改为类,并使用IFrame.
<a href="http://wikipedia.com/" class="test">comment #1</a><br> <a href="http://ebay.com/" class="test">comment #2</a><br> <a href="http://ask.com/" class="test" >comment #3</a><br> <div id="somediv" title="this is a dialog" style="display:none;"> <iframe id="thedialog" width="350" height="350"></iframe> </div> <script> $(document).ready(function () { $(".test").click(function () { $("#thedialog").attr('src',$(this).attr("href")); $("#somediv").dialog({ width: 400,height: 450,modal: true,close: function () { $("#thedialog").attr('src',"about:blank"); } }); return false; }); }); </script>
如果你想拉入HTML而不是IFrame,你将不得不使用Ajax(XMLHttpRequest),如下所示:http://jsfiddle.net/qp7NP/1/