9

以前にこの質問をしましたが、私が達成しようとしていることについて適切に説明したとは思いません。

私のウェブサイトには複数のリンクがあり、リンクからコンテンツを 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>
4

2 に答える 2

16

http://jsfiddle.net/qp7NP/

いくつかの変更: ID を Class に変更し、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>

IFrame の代わりに HTML を取り込みたい場合は、次のような Ajax (XMLHttpRequest) を使用する必要があります: http://jsfiddle.net/qp7NP/1/

于 2013-03-23T00:45:10.753 に答える