首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取打开模式的按钮(不使用data-* html标记)

获取打开模式的按钮(不使用data-* html标记)
EN

Stack Overflow用户
提问于 2018-09-12 08:35:50
回答 1查看 42关注 0票数 0

我有一个引导模式,是通过两个不同的按钮点击打开的。如果instatnce满足给定的条件:

代码语言:javascript
复制
$('#buttonName').on('click', function (e) {
     var arg = something;
     if (condition) {
     $('#modalName').modal('show');
     } else { someFunction(arg); }
});

$('#otherButton').on('click', function (e) {
     var arg = something;
     if (condition) {
     $('#modalName').modal('show');
     } else { someFunction(arg); }
});

此处不能使用HTML数据属性。所以就像这样:

代码语言:javascript
复制
<button id="buttonName" class="modalBtn" data-toggle="modal" data-target="#modalName" data-caller="button1"></button>

将不会工作,因为来自on.click事件的if语句将被省略,并且无论条件如何,模式都是打开的,这是我不想要的。

该模式包含一个按钮

代码语言:javascript
复制
<div id="logoutBoxModal" class="modal fade bd-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true" data-backdrop="true" keyboard:="true">
    <div id="" class="modal-content">                   
        <button id="modalButton"></button>
    </div>
</div>

这应该会根据两个按钮中的哪个按钮打开它来做一些事情。

我试过这个:

代码语言:javascript
复制
//$('#myModal') alternatively
$('.modal').on('show.bs.modal', function (e) {
    var $trigger = e.relatedTarget;
    console.log($trigger);
});

但它总是返回未定义的。

我能找到的所有答案都涉及到这里不能使用的数据属性的用法。

总而言之,我所需要的就是如何将一个值传递给模态,这样它就可以告诉按钮它应该做什么,而所有这些都必须通过javascript/jquery来完成。

谢谢

更新-应答

返回的$trigger变量是Javascript,不是jQuery,它的数据可以用Javascript访问:

代码语言:javascript
复制
<button id="buttonName" class="modalBtn" data-caller="button1"></button>

 var $trigger = e.relatedTarget.target;
 var data = $trigger.dataset.caller;
 console.log(data);

与jQuery相反:

代码语言:javascript
复制
...
var data = $trigger.data("caller");
console.log(data);
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52285889

复制
相关文章

相似问题

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