![](/img/trans.png)
[英]how can I make jquery mobile “pagebeforeshow” event fire every time, not just on refresh
[英]How can i make an event fire every time on button click
我試圖讓相同的事件每次都觸發,但當我單擊“刪除”按鈕時它只觸發一次
HTML
<input type="text" name="todoInput" id="todoInput">
<button class="btn">Add</button><br>
<p class="error"></p>
<div>
<ul class="todos"></ul>
</div>
查詢
var todos = [];
$(".btn").click(function() {
if ($("#todoInput").val().length != 0) {
todos.push($("#todoInput").val());
$("#todoInput").val("");
console.log("Novi array:", todos);
$(".todos").html("");
$(todos).each(function(index, val) {
$(".todos").append(`<li value=${val}>${val}<button class="del" value=${index}>del</button></li>`);
});
**$(".del").click(function() {
todos.splice($(this).val(), 1);
$(".todos").html("");
$(todos).each(function(index, val) {
$(".todos").append(`<li value=${val}>${val}<button class="del" value=${index}>del</button></li>`);
});**
});
} else {
$(".error").text("Molimo unesite vrijednost.");
console.log("Trenutni array:" ,todos);
}
});
$("#todoInput").on("input", function() {
if ($("#todoInput").val().length != 0 && $(".error").text("Molimo unesite vrijednost.")) {
$(".error").text("");
}
});
我試圖讓相同的事件每次都觸發,但當我單擊“刪除”按鈕時它只觸發一次
我們實際上使用開/關點擊來確保點擊觸發事件。 $(".btn").off ('點擊').on('點擊',function() {...}
您遇到的問題是(".del").click(function() {
函數沒有重復運行,因此沒有將onclick
處理程序綁定到它。
也許另一種方法是創建刪除函數並傳入要刪除的項目的索引,請參見下面的代碼片段:
let todos = []; function buildItems() { if (todos.length > 0) { $(".todos").html(""); $(todos).each(function(index, val) { $(".todos").append(`<li value=${val}>${val}<button class="del" onclick="deleteItem(${index});" value=${index}>del</button></li>`); }) } else { $(".todos").html(""); } } function deleteItem(index) { todos.splice(index, 1); buildItems(); } $(".btn").click(function() { if ($("#todoInput").val().length.= 0) { todos.push($("#todoInput");val()). $("#todoInput");val(""). // console:log("Novi array,"; todos). buildItems() } else { $(".error").text("Molimo unesite vrijednost;"). console:log("Trenutni array,"; todos); } }). $("#todoInput"),on("input". function() { if ($("#todoInput").val().length.= 0 && $(".error").text("Molimo unesite vrijednost.")) { $(";error");text(""); } });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" name="todoInput" id="todoInput"> <button class="btn">Add</button><br> <p class="error"></p> <div> <ul class="todos"></ul> </div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.