首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将单击按钮的下一个元素发送到jQuery UI对话框

将单击按钮的下一个元素发送到jQuery UI对话框
EN

Stack Overflow用户
提问于 2016-03-23 16:37:54
回答 2查看 59关注 0票数 0

尝试动画元素后,当使用此脚本单击按钮时:

代码语言:javascript
运行
复制
$(document).ready(function()
{
  $("#oone, #otwo, #othree, #ofour, #ofive, #osix, #oseven, #oeight, #onine, #oten, #otwelve, #otwenty, #othirteen, #ofourteen, #ofifteen, #osixteen, #loone, #lotwo, #lothree, #lofour, #lofive, #losix, #loseven, #loeight, #lonine, #laaten, #lotwelve, #lotwenty, #lothirteen, #lofourteen, #lofifteen, #losixteen").click(function()
    {
    // $(this).css('border', "solid 2px red");
    // var divs = $("#div_one, #div_two, #div_three, #div_four, #div_five, #div_six, #div_seven, #div_eight, #div_nine, #dive_ten, #div_eleven, #div_twelve, #div_thirteen, #div_fourteen, #div_fifteen, #div_sixteen, #div_lone, #div_ltwo, #div_lthree, #div_lfour, #div_lfive, #div_lsix, #div_lseven, #div_leight, #div_lnine, #dive_lten, #div_leleven, #div_ltwelve, #div_lthirteen, #div_lfourteen, #div_lfifteen, #div_lsixteen");
    // $(divs).siblings().slideToggle();

      $(this).next().slideToggle();
      $(this).siblings().slideToggle();
   });
});

我有一些动画不想要的结果。所以我决定,为什么不使用jQuery UI插件将结果发送到对话框bix,而不是动画点击按钮的下一个元素。因此,我尝试了以下几点:

代码语言:javascript
运行
复制
<script src="../include/jquery-1.12.1.min.js"></script>
<script src="../include/jquery-ui.min.js"></script>
<script src="../include/bootstrap.min.js" type="text/javascript"></script>
$(document).ready(function() {
  $("#oone, #otwo, #othree, #ofour, #ofive, #osix, #oseven, #oeight, #onine, #oten, #otwelve, #otwenty, #othirteen, #ofourteen, #ofifteen, #osixteen, #loone, #lotwo, #lothree, #lofour, #lofive, #losix, #loseven, #loeight, #lonine, #laaten, #lotwelve, #lotwenty, #lothirteen, #lofourteen, #lofifteen, #losixteen").click(function() {

    $(this).next().dialog({
      autoOpen: false,
      hide: "puff",
      show: "slide",
      width: 800,
      modal: true
    });
    //$(this).dialog("open");
  });
});

以下是仅用于前两个按钮的html代码,因为cod太长了:

代码语言:javascript
运行
复制
<div class="form-group col-md-12">
  <input class="img1" type="image" style="width:60px;height:60px" src="../images/molar_left_t.png" id="oone" name="one" alt="button" />
  <div id="div_one" class="collapse">3rd Molar:
    <?php echo $resTeeth['one'] ?>
  </div>
  <input class="img1" type="image" style="width:60px;height:60px" src="../images/molar_left_t.png" id="otwo" name="two" alt="button" />
  <div id="div_two" class="collapse">
    <?php echo $resTeeth['two'] ?>
  </div>

所以我犯了一个错误:

代码语言:javascript
运行
复制
jquery-1.12.1.min.js:2 Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'open'

如何修复此错误,是否可以使用next()dialog div元素发送到dialog框中,或者是否应该为每个div指定id,并为每个div创建一个对话框脚本?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-23 21:48:01

您的问题是,您正在从下一个div创建对话框,但您正在尝试打开当前div上的对话框。你可以很容易地解决这个问题:

代码语言:javascript
运行
复制
$(document).ready(function() {
    $("#oone, #otwo, #othree, #ofour, #ofive, #osix, #oseven, #oeight, #onine, #oten, #otwelve, #otwenty, #othirteen, #ofourteen, #ofifteen, #osixteen, #loone, #lotwo, #lothree, #lofour, #lofive, #losix, #loseven, #loeight, #lonine, #laaten, #lotwelve, #lotwenty, #lothirteen, #lofourteen, #lofifteen, #losixteen").click(function() {
        var dialog = $(this).next();
        dialog.dialog({
          autoOpen: false,
          hide: "puff",
          show: "slide",
          width: 800,
          modal: true
        });
        dialog.dialog("open");
    });
});
票数 1
EN

Stack Overflow用户

发布于 2016-03-23 21:16:37

我假设您希望对话框包含下一个(以下) div的内容。

这样就可以做到:

代码语言:javascript
运行
复制
$(document).ready(function() {
  var dialog = '<div class="mydialog" title="Basic dialog"><p class="dialogcontent">me</p></div>';
  var newDiv = $(dialog);
  newDiv.dialog({
    autoOpen: false,
    hide: "puff",
    show: "slide",
    modal: true,
    buttons: {
      Ok: function() {
        $(this).dialog("close");
      }
    }
  });

  $(".form-group").on('click', ".img1", function() {
  var me = $(this);
    newDiv.find('.dialogcontent').html(me.next('.collapse').html())
    newDiv.dialog("open");
  });
});

行动中的示例:https://jsfiddle.net/89pyhsuj/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36183848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档