我尝试在JavaScript消息中添加删除按钮。单击垃圾桶时,出现一条消息确认操作。但是,如果我有3种产品,则该消息将出现3次,2种产品,2次。 另外,单击确认按钮后,不会删除该产品。
谢谢
for(int j = 0; j < i; j++)
答案 0 :(得分:0)
首先,您遇到的问题是,任何单击的按钮都会触发事件,与子DOM元素中的按钮一样多。因此,您需要做的就是获取触发事件的确切元素:
//with message
$product_id = 'remove_product' . $products[$i]['id'];
$remove_product = ['params' => 'id="'. $product_id .'"'];
$trash = HTML::link($this->link(null, 'Cart&Delete&products_id=' . $products[$i]['id']), HTML::button(null, 'fas fa-trash',null, null, $remove_product)) . ' ';
$but_id = $product_id;
echo "<script>
var button = $('#". $but_id . "');
$(document).on('click', button, function (event) {
console.log('button clicked');
//$('form').submit(function () {
//if (!window.confirm('Are you sure?')) return false;
//})
})
</script>
";
$(document).on('click', 'button', function(e){
alert(this.id);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
<button id="product_delete1" data-id="1">Delete</button>
<button id="product_delete2" data-id="2">Delete</button>
<button id="product_delete3" data-id="3">Delete</button>
</form>