Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jQuery检测删除的元素?_Javascript_Jquery - Fatal编程技术网

Javascript 如何使用jQuery检测删除的元素?

Javascript 如何使用jQuery检测删除的元素?,javascript,jquery,Javascript,Jquery,您好,我需要代码方面的帮助,我正在创建一个非常简单的游戏(僵尸杀戮),我想检测元素是否被删除,jquery是否可以这样做?这是我需要检测元素是否被删除的代码的一部分: plansza.addEventListener('click', function(e) { if (e.target.classList.contains('zombie')) { e.target.live--; //console.log(e.target.remove())

您好,我需要代码方面的帮助,我正在创建一个非常简单的游戏(僵尸杀戮),我想检测元素是否被删除,jquery是否可以这样做?这是我需要检测元素是否被删除的代码的一部分:

plansza.addEventListener('click', function(e) {
    if (e.target.classList.contains('zombie')) {
        e.target.live--;
        //console.log(e.target.remove())
        if (e.target.live <= 0) {
            score += 10;
            e.target.remove();
            document.querySelector('.score span').innerText = score;
        }
        if (e.target.live > 0 && e.target.remove()) {
            console.log('uciekłem')
            score -= 10;
            e.target.remove();
            document.querySelector('.score span').innerText = score;
        }

    }
plansza.addEventListener('click',函数(e){
if(e.target.classList.contains('zombie')){
e、 target.live--;
//console.log(e.target.remove())
if(e.target.live 0&&e.target.remove()){
控制台日志('uciekłem')
得分-=10分;
e、 target.remove();
document.querySelector('.score span')。innerText=score;
}
}
首先,如果在2次点击后删除元素,但僵尸没有被点击并离开屏幕,则分数必须为-10。

remove()
始终删除元素,它不会返回值。因此,您不应该使用
if()
测试它。只需调用
remove()
并假设它完成了任务

plansza.addEventListener('click', function(e) {
    if (e.target.classList.contains('zombie')) {
        e.target.live--;
        if (e.target.live <= 0) {
            score += 10;
            e.target.remove();
        } else {
            console.log('uciekłem');
            score -= 10;
        }
        document.querySelector('.score span').innerText = score;
    }
});
plansza.addEventListener('click',函数(e){
if(e.target.classList.contains('zombie')){
e、 target.live--;

if(e.target.live我发现将一个DOMSubtreeModified事件绑定到父元素是最简单的

$(yourParentElement).bind("DOMSubtreeModified", DOMChanged);

function DOMChanged(){
   alert('child element removed');
}

为什么不在代码中执行一些删除操作呢?可以使用just check检查它是否为null,这是知道它已从DOM中删除的一种方法
e.target.remove()
不返回值,为什么要用
if()测试它
?@Barmar,因为OP可能认为它确实返回元素是否已删除。我已经尝试了其他方法,但问题是它们有2个生命,因此如果你点击1次,它们仍有1个生命,因此其他方法将执行,所以你只想在
live 0&&e.target.remove()时删除它)
当你点击它2次或当它们离开屏幕时,它们会被删除,我想可能是它们的位置,如果位置活动时才删除它,我不确定问题出在哪里。当我在每个僵尸上单击两次时,它就会消失。