createData 是一個顯示資料并在單擊按鈕時出現的函式。如何讓資料每隔一次點擊就消失?
document.getElementById("clickme").onclick = createData;
uj5u.com熱心網友回復:
let item = document.getElementById("clickme")
let checker = true;
item.addEventListener('click', checkData);
function checkData() {
if (checker) {
createData();
} else {
clearData();
}
}
function createData() {
checker = false;
console.log('create')
}
function clearData() {
checker = true;
console.log('clear')
}
<button id="clickme">
click me!
</button>
uj5u.com熱心網友回復:
好的...如果我說對了,您希望任何其他單擊都可以從 createData 中銷毀以前的資料,對嗎?
由于我看不到 createData,我假設它是一個函式,如下所示:
//your function assumed
function createData(){
//creating data
return data
}
如果您希望 createData 在單擊 $('#clickme') 時回傳資料并在單擊其他內容時銷毀,請嘗試如下:
$('#clickme').on('click',function(){
})
$(document).on('click',function(e){
youClickedThisId = e.target.id
if (youClickedThisId == 'clickme') {
createData()
console.log(createData())
} else {
//createData( with Parameters to destroy ) or
//a new function to destroy previously data called: destroyData()
console.log(destroyData())
}
})
let data = 'i`m your data'
function createData() {
return data
}
function destroyData() {
data = 'i was your data'
data = null //or data = ''
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<button id="clickme"> CLICK ME </button>
</body>
在接下來的問題中,我建議您展示您的代碼!希望這個答案能幫到你!
uj5u.com熱心網友回復:
有很多方法可以做到這一點,但最簡單的方法是切換資料的顯示狀態。另外,不要使用行內事件屬性,onclick因為這是一種 25 年以上的傳統技術,用于設定今天已經過時的事件,可能會導致代碼出現各種問題。而是使用.addEventListener(),這是基于現代標準的事件設定方式。
document.getElementById("clickme").addEventListener("click", createData);
const data = document.querySelector(".data");
function createData(){
// You can have more code in here that updates the data as needed before
// toggling its display state
data.classList.toggle("hidden");
}
.hidden { display:none; }
<div id="clickme">Click to toggle display of data</div>
<div class="data hidden">This is the data</div>
uj5u.com熱心網友回復:
在沒有更多背景關系的情況下很難做出強烈的推薦,但如果您對實際元素中的狀態管理感到滿意,這里是一個相對簡單的解決方案。我認為 VladykoD 的分析器可能更安全。
在這里,我向元素添加了一個屬性值為零的屬性。當用戶單擊該元素時, checkClickIterationAndCreateData 函式將觸發,獲取 click_monitor 屬性,將其決議為整數,檢查該整數是偶數還是奇數,然后將 1 添加到 click_monitor。
function addCreateDataFunction(elm_id){
let target_elm = document.getElementById(elm_id);
target_elm.setAttribute('click_monitor','0');
target_elm.onclick = checkClickIterationAndCreateData;
}
function checkClickIterationAndCreateData(){
let click_iteration = parseInt(this.getAttribute('click_monitor'));
this.setAttribute('click_monitor',click_iteration 1);
if(click_iteration % 2 == 0) createData();
else console.log('do nothing');
}
function createData(){
console.log('creating data')
}
addCreateDataFunction('clickme')
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478976.html
標籤:javascript html jQuery css json
