3

小さな問題が発生しました。ここに私がしていることのサンプルがあります。

 htmlValue += '<a href="#" id="shareOpen" style="margin: 0 2px 0 2px; float: left;" 
title="Share File" class="version ui-icon ui-icon-heart"></a>';
 $(modalDivObj).html(htmlValue);

私はこれを、他の多くの機能を持つページのループに書いています。そして、すべてがうまく書いて表示されます。ただし、#shareOpenダイアログをクリックしても開きません。同じhtmlをハードコーディングしてみましたが、うまくいきました。問題は、それを実行すると.html()IDが書き込まれないことですか? 知らない。

これは、ページ上のhtmlとjqueryの一部です。

$("#shareFile").dialog({
        autoOpen: false,
        modal: "true",
        show: "blind",
        hide: "explode",
        buttons: {
            "Done": function () {
                $(this).dialog("close");
            }
        }
    });
    $("#shareOpen").click(function () {
        $("#shareFile").dialog("open");
        return false;
    });
 <div id="shareFile"  runat ="server">



 </div>   
4

1 に答える 1

0

あなたが言ったことから、最も可能性の高い問題は、クリックイベントが正しくバインドされていないことだと思います。

クリックする現在の呼び出しの代わりに、次を使用してみてください。

$("#files-icons").on("click", "#shareOpen", function () {
    $("#shareFile").dialog("open");
    return false;
});

これにより、ページにいつ追加されるかに関係なく、#files-iconsの子であるID'shareOpen'の要素にイベントハンドラーがバインドされます。

問題は、ページにまだ存在しない要素にクリックハンドラーをバインドしていることだと思います。

于 2012-11-29T17:47:22.177 に答える