是否可以通过jQuery将“事件”发送到另一个函数? 我有这段代码可以防止删除表的行以执行某些处理,然后删除该行。 我想在它们之间添加一个模式窗口。但是我不知道如何进行。
实际上,我喜欢这样
$('#delete-row').on('click', '.tr-special .remove-line-exceptionnel', function (event) {
event.preventDefault();
var $row = $(event.target).closest('.tr-special');
console.log($row);
var elementSortable = $row.find('ul').attr('id');
items = $row.find('li');
$( items ).each(function( index ) {
//function out of purpose
});
$row.remove();
});
console.log的输出是
r.fn.init [tr.tr-special, prevObject: r.fn.init(1)]
在类为.remove-line的Delete按钮上单击后,我想调用我的模态,所以在正常情况下我喜欢这样
$('.remove-line').on('click', function (event) {
$('#custom-width-modal').modal('show');
});
我想要的是:当我按模态中的“确认”按钮时,$('#delete-row')。on('click','.tr-special .remove-line',函数(事件){..执行。
$('.modal-footer').on('click', '.validDelete', function(e) {
var $row = $(e.target).closest('.tr-special');
console.log($row);
});
console.log的输出是
r.fn.init [prevObject: r.fn.init(1)]
希望你能理解我
答案 0 :(得分:0)
如果您只是简单地全局声明$row
变量...
在.remove-line-exceptionnel
单击处理程序中,存储要删除的元素。然后在.validDelete
点击处理程序中,删除该元素。
因此在任何地方都没有发送事件。有两个事件……一个是知道要删除哪个元素,另一个是实际要做的事情。
// Declare a variable globally
var $row;
// Button (or whatever) in the row
$('#delete-row').on('click', '.tr-special .remove-line-exceptionnel', function (event) {
// Store the row element to delete
$row = $(event.target).closest('.tr-special');
// Show modal
$('#custom-width-modal').modal('show');
});
// Modal button
$('.modal-footer').on('click', '.validDelete', function(e) {
// Remove the row
$row.remove();
// Hide modal
$('#custom-width-modal').modal('hide');
});
table{
margin: 0 auto;
}
td{
padding: 1em;
border: 1px solid black;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/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"/>
<table id="delete-row">
<tr class="tr-special">
<td>Row 1</td>
<td><button class="remove-line-exceptionnel">Remove</button></td>
</tr>
<tr class="tr-special">
<td>Row 2</td>
<td><button class="remove-line-exceptionnel">Remove</button></td>
</tr>
<tr class="tr-special">
<td>Row 3</td>
<td><button class="remove-line-exceptionnel">Remove</button></td>
</tr>
</table>
<div id="custom-width-modal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<p>Are you sure?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary validDelete">Yes, I'm sure.</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>