考虑以下回调:
$('#btnDoStuff').on('click', function processBasicInfo() {
$('#modalBasicInfo').modal('show');
});
由于该函数仅包含一行,是否有办法像这样缩短它?
$('#btnDoStuff').on('click', $('#modalBasicInfo').modal('show'));
或其变体?
P.S。需要完全支持IE11的浏览器。
答案 0 :(得分:1)
我不知道您为什么要使其缩短,但我想您可以删除函数名称。
$('#btnDoStuff').on('click', function() { return $('#modalBasicInfo').modal('show') });
或者您可以将函数与其所有参数绑定在一起:
$('#btnDoStuff').on('click', $('#modalBasicInfo').modal.bind($('#modalBasicInfo'), 'show'));
或者,如果您打算使用babel,则可以使用箭头功能。
$('#btnDoStuff').on('click', () => $('#modalBasicInfo').modal('show'));
答案 1 :(得分:1)
您可以bind
modal
调用事件处理程序
$('#btnDoStuff').on('click', $('#modalBasicInfo').modal.bind($('#modalBasicInfo'),'show'));
答案 2 :(得分:1)
不知道为什么要这么做,但是您可以使用.bind(),但没有任何意义。
$("button").on("click", $(".modal").modal.bind($(".modal"), "show"))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<button>Foo</button>
<div class="modal">Bar</div>