1

私の要件は、divをダブルクリックすると、別のdivがfancyboxとして開く必要があるということです.レール3.1を使用してJqueryでこれを行うにはどうすればよいですか

document.ready() 内に次の関数があります

$("#a1").dblclick(function () {
  $.get("/projects/edit/"+this.id,{
  u:$('#user').val()
  },
  function(data)
  {
  $("#edit_proj").fancybox();
  $("#edit_proj").html(data);

  });

しかし、edit_proj divはfancyboxで開かれていません.fancyboxで開く方法がわかりません..

ありがとう

4

2 に答える 2

0

divsドキュメント構造に存在するかどうかの構造はわかりません<div id="edit_proj"></div>(ただし、それを評価して親コンテナに動的に追加できdivます)...この(レンダリングされたhtml)構造があると推測します:

<div id="a1">double click me</div>
<div id="container"></div>

...どこ#containerが(になる)の親divである#edit_proj場合、このスクリプトを試すことができます

$("#a1").dblclick(function() {
    $.get("/projects/edit/" + this.id, {
        u: $('#user').val(),
    }, function(data) {
        if ($("#edit_proj").length == 0) {
            console.log("it doesn't exist"); // so append it
            $("<div id='edit_proj' />").appendTo("#container").html(data);
            $.fancybox("#edit_proj"); // fancybox
        } else {
            console.log("it does exist"); // so add data
            $("#edit_proj").html(data);
            $.fancybox("#edit_proj"); // fancybox
        }
    }); // get
}); // dblclick

JSFIDDLEを参照してください

重要:inlineコンテンツを使用しているため、fancybox は<div id='edit_proj'></div>プロパティを使用してドキュメント構造内のその場所に戻ることに注意してください。display:none;

: このデモでは fancybox v2.1.3+ を使用しています。

于 2012-11-22T18:45:13.380 に答える
0

ページに存在することを確認#edit_projしてください これも変更してください

 $("#edit_proj").fancybox();
  $("#edit_proj").html(data);

これに

  $("#edit_proj").html(data);
 $("#edit_proj").fancybox();
于 2012-11-22T07:11:43.267 に答える