【问题标题】:How to apply this html script in to jQuery?如何将此 html 脚本应用于 jQuery?
【发布时间】:2017-09-23 14:48:32
【问题描述】:

我有一个属性为data-toggledata-target 的按钮。这是完整的按钮脚本:

<button style="width:50%; float:left" type="button" class="btn btn-info" id="btn_report" data-toggle="modal" data-target="#myModal">Detail</button>

这个按钮打开一个简单的模式。模态框也可以通过在模态框外单击来关闭。但是,我想在使用 jQuery 的按钮中有一些规则。

$('#btn_report').on('click',function(e){
    var dataSend    = "some_data";
    $.ajax({
        type: "POST",
        url: "some_function",
        cache: false,
        dataType : "json",
        data: dataSend,
        success: function(response) {
           if(response){
               $('#myModal').show();
           }else{ 
               alert("There are no data to be displayed"); return false; 
           }
        }
   })
});

使用data-toggledata-target,每当我单击按钮时,总是会打开模式。如果我删除data-toggledata-target 并添加$('#myModal').show();,则不会显示模式。

如果有从 ajax 返回的数据,我想做的是打开模式。如果没有,则触发警报。

模态很简单:

<div class="modal fade" id="myModal" role="dialog">
  <div class="modal-dialog"> 
    <!-- Modal content-->
    <div class="modal-content" id="printMe">
        <div class="modal-body"> Congrats, you have your data </div>
    </div>
  </div>
</div>

【问题讨论】:

  • $('#myModal').modal('show');修改代码,

标签: javascript jquery html ajax twitter-bootstrap


【解决方案1】:

当您使用引导模式时,您需要使用modal('open'),而不是show()。试试这个:

if (response) {
  $('#myModal').modal('show');
} else { 
  alert("There are no data to be displayed"); 
}

另请注意,return 是多余的,因为您无法从异步 success 处理函数中返回任何内容。

【讨论】:

  • 谢谢。我已将其更改为 open 并从按钮中删除 `data-toggle="modal" data-target="#myModal"`。但是模态没有出现。为什么?
  • 问题中没有足够的信息来诊断,因为这应该有效。检查控制台是否有错误
  • 它现在可以工作了。但是,没有幻灯片效果。如何添加?
  • 我建议为此提出一个新问题
【解决方案2】:

在点击监听器中添加 event.stopPropagation()

$('#btn_report').on('click',function(e){
    event.stopPropagation();
    setTimeout(function() {
        // ajax mock
        $('#myModal').modal('show');
    }, 2000);
});

【讨论】:

  • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
猜你喜欢
  • 1970-01-01
  • 2018-02-22
  • 2017-11-29
  • 2016-02-02
  • 2018-10-18
  • 1970-01-01
  • 1970-01-01
  • 2012-08-24
  • 1970-01-01
相关资源
最近更新 更多