移动端点击复选框,不出现样式?

$('.mui-table-view>.mui-table-view-cell').on('tap', function() {

            
    var checked = $(this).find('input').prop("checked"); 
                
    if (checked) {
                    
        $(this).find('input').removeProp("checked");  
        checked = $(this).find('input').prop("checked"); 
                        
        userNameArr.remove($(this).find('label').text());
        userIdArr.remove($(this).find('input').val());
                    
    }else {
        if($.inArray($(this).find('label').text(),userNameArr)<0){
            $(this).find('input').prop("checked",true); 
            checked = $(this).find('input').prop("checked"); 
            
            userNameArr.push($(this).find('label').text());
            userIdArr.push($(this).find('input').val());
        }
    }

});

代码如上。
在移动端上,点击相关项,样式并未及时发生变化。请问是jQuery在移动端作DOM操作的效率太低导致的吗?
样式虽然没有及时变化,但数组操作是及时的。

阅读 3.4k
3 个回答

我记得用mui的时候有的写法用 $ 替换了 mui, 导致jQuery冲突, 如果你突然jquery用不了, 试试把你的jQuery代码中的"$"写成jQuery

新手上路,请多包涵

看你的代码你是先获取选中的,你第一句直接把它选中了啊,然后就进if,你在把它移除了,就看上去没反应了,改成下面的看看:
var checked = $(this).find('input[checked="checked"]')

var checked = $(this).find('input').prop("checked");
代码有问题 你这是直接给定选中状态了
你应该先判断是否选中
if($('#checkbox-id').is(':checked')) {

// do something

}else{

 // do something

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题