![](/img/trans.png)
[英]If hasClass condition not working after Updating Class with jQuery
[英]Jquery - hasclass after delay
我想檢查一段時間后元素是否有一個類。 喜歡延遲。 基本上,該類是通過其他功能添加到元素的。 因此,如果我檢查該clicked元素上的hasClass
,它將返回false。
var check_selected = $(this).hasClass('selected');
if ( $(this).hasClass('selected').delay(500) ) {
console.log(check_selected);
}
這是我正在嘗試的方法,但我想知道是否可以將延遲添加到hasClass
,或通過其他任何方式來實現此目的。 但這不起作用
根據答案的建議,我嘗試了這一點-
var check_selected = $(this).hasClass('selected');
setTimeout(function(){
if ( $(this).hasClass('selected') ) {
console.log(check_selected);
}
}, 500);
但是現在在控制台上沒有任何結果。
只是要更新-
該類是在單擊時應用的,而我基本上想知道是否應用了該類,因此單擊該類,因此我正在使用hasclass。 還有其他出路嗎,還是我做錯了
編輯-
var _this = this;
var check_selected = $(this).hasClass('selected');
setTimeout(function(){
if ( $(_this).hasClass('selected') ) {
console.log(check_selected);
}
}, 5000);
我正在嘗試此操作,但仍會出錯
更新-
var checkSelected = setInterval(function(){
var check_selected = $(_this).hasClass('selected');
if(check_selected) {
clearInterval(checkSelected);
}
console.log(check_selected);
}, 500);
這工作了!
您可以使用setTimeout
的javascript函數,該函數在miliseconds
內作為第二個參數傳遞后執行回調執行
var check_selected = $(this).hasClass('selected');
setTimeout(function(){
if ( $(this).hasClass('selected') ) {
console.log(check_selected);
}
}, 500);
嘗試使用setTimeout
模擬延遲。 而且,如果要反復測試直到被選中,可以嘗試setInterval(function(){}, interval)
。 如果要停止調用該函數,則需要調用clearInterval
。
$("#test").on("click", function(){ const component = $(this); setTimeout(function(){ component.addClass("selected"); }, 600); setTimeout(function(){ var check_selected = component.hasClass('selected'); console.log(check_selected); }, 500); var checkSelected = setInterval(function(){ var check_selected = component.hasClass('selected'); if(check_selected) { clearInterval(checkSelected); } console.log(check_selected); }, 500); })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="test">Check my class</div>
您可以使用計時器功能
var currObj = this;
setTimeout(function(){
var check_selected = $(currObj ).hasClass('selected');
if ($(currObj).hasClass('selected')) {
console.log(check_selected);
}
},500);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.