我有以下 html 結構
<body data-page="first">
<div class="start">Test</div>
</body>
和以下js
$('body[data-page="first"] .start').on('click',function (){
body.attr('data-page','second');
});
$('body[data-page="second"] .start').on('click',function (){
console.log('Test');
});
我希望,在第二次單擊 .start 后,控制臺會顯示“測驗”,但它不會......
你能告訴我我做錯了什么嗎?
提前致謝!
uj5u.com熱心網友回復:
問題是頁面是在資料頁面設定為 first 的情況下呈現的,當你再次點擊它時,javascript 的那部分仍然看到“first”,因為沒有重新呈現,所以你需要一個動態函式,讀取全部與該按鈕的互動,然后檢查該屬性具有的值。像這樣你可以制作無限的案例,并且仍然繼續。
$('body .start').on('click',function (){
const attr = $('body').attr('data-page');
if(attr === 'first') {
$('body').attr('data-page','second');
} else {
console.log('second');
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body data-page="first">
<div class="start">Test</div>
</body>
如果您不喜歡針對所有“身體”的事實,這很奇怪,因為您應該只有 1 個身體,您可以使用 ID 來定位正確的身體
PS:復制您的功能從來都不是一個好主意,如果您可以在動態功能中設定所有內容,讀取所有內容,更容易在功能中除錯,并且更輕,更干凈
uj5u.com熱心網友回復:
這種方法可以幫助:
var timesClicked = 0;
$('.start').on('click',function (){
timesClicked ;
if (timesClicked>1) {
console.log('Test');
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/370030.html
標籤:javascript html 查询 自定义数据属性
上一篇:使用python代碼將csv檔案中的資料加載到oracledb時,真值顯示為1,假值顯示為0
下一篇:排除回圈中的數字
