Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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
Php javascript事件未处理脚本_Php_Javascript_Html_Css - Fatal编程技术网

Php javascript事件未处理脚本

Php javascript事件未处理脚本,php,javascript,html,css,Php,Javascript,Html,Css,我的javascript遇到了一个棘手的问题,基本上我已经编写了以下javascript来删除页面中动态添加的li选项卡,但它没有处理,javascript是: $(document).ready(function(e) { $(".close").on("click", this, function() { $(this).closest("li").remove(); var panelId = $(this).closest('li').

我的javascript遇到了一个棘手的问题,基本上我已经编写了以下javascript来删除页面中动态添加的li选项卡,但它没有处理,javascript是:

$(document).ready(function(e) 
{
    $(".close").on("click", this, function() 
    {
        $(this).closest("li").remove();
        var panelId = $(this).closest('li').attr('href');
        // $(this).closest('#content').remove();
        // $('#tab1').remove();
        $('#nav-tabs a:last').tab('show');

            $('#close1').on('click',this, function() 
            {
                $('.tab1').remove();
                $('#nav-tabs a:last').tab('show');
            })

            $('#close2').on('click',this, function() 
            {
                $('.tab2').remove();
                $('#nav-tabs a:last').tab('show');
            }) 

            $('#close3').on('click',this, function() 
            {
                $('.tab3').remove();
                $('#nav-tabs a:last').tab('show');
            })


        })
        if(counter <= 1){
            counter = 1;
        }else  {
            counter--;
        }
        return false;
    })
});
$(文档).ready(函数(e)
{
$(“.close”)。在(“单击”时,此函数()
{
$(this).最近的(“li”).remove();
var panelId=$(this.nexist('li').attr('href');
//$(this).最近(“#content”).remove();
//$('#tab1')。删除();
$(“#导航选项卡a:最后一个”).tab('show');
$('#close1')。在('click',this,function()上
{
$('.tab1').remove();
$(“#导航选项卡a:最后一个”).tab('show');
})
$(“#close2”)。在('click',this,function()上
{
$('.tab2').remove();
$(“#导航选项卡a:最后一个”).tab('show');
}) 
$('#close3')。在('click',this,function()上
{
$('.tab3').remove();
$(“#导航选项卡a:最后一个”).tab('show');
})
})
如果(计数器尝试以下操作:

$(document).ready(function(e) 
{
    $(document).on("click", ".close", function() 
    {
        $(this).closest("li").remove();
        var panelId = $(this).closest('li').attr('href');
        // $(this).closest('#content').remove();
        // $('#tab1').remove();
        $('#nav-tabs a:last').tab('show');

            $(document).on('click','#close1', function() 
            {
                $('.tab1').remove();
                $('#nav-tabs a:last').tab('show');
            })

            $(document).on('click','#close2', function() 
            {
                $('.tab2').remove();
                $('#nav-tabs a:last').tab('show');
            }) 

            $(document).on('click','#close3', function() 
            {
                $('.tab3').remove();
                $('#nav-tabs a:last').tab('show');
            })


        })
        if(counter <= 1){
            counter = 1;
        }else  {
            counter--;
        }
        return false;
    })
});
$(文档).ready(函数(e)
{
$(文档)。在(“单击”,“关闭”,函数()上)
{
$(this).最近的(“li”).remove();
var panelId=$(this.nexist('li').attr('href');
//$(this).最近(“#content”).remove();
//$('#tab1')。删除();
$(“#导航选项卡a:最后一个”).tab('show');
$(文档)。在('单击','关闭1',函数()上
{
$('.tab1').remove();
$(“#导航选项卡a:最后一个”).tab('show');
})
$(文档)。在('单击','关闭2',函数()上
{
$('.tab2').remove();
$(“#导航选项卡a:最后一个”).tab('show');
}) 
$(文档)。在('单击','关闭3',函数()上
{
$('.tab3').remove();
$(“#导航选项卡a:最后一个”).tab('show');
})
})

如果(计数器,问题是您首先删除
li
,然后尝试读取它的一个属性

在完成所有需要访问它或其属性的操作之后,您需要删除
li

i、 e


在读取
id
之前,您正在删除
li
,因此
panelId
未定义
,您还必须使用基于事件委派的事件处理

$(document).ready(function(e) {

    $('#close1').on('click', this, function() {
                $('.tab1').remove();
                $('#nav-tabs a:last').tab('show');
            })

    $('#close2').on('click', this, function() {
                $('.tab2').remove();
                $('#nav-tabs a:last').tab('show');
            })

    $('#close3').on('click', this, function() {
                $('.tab3').remove();
                $('#nav-tabs a:last').tab('show');
            })

    $(document).on("click", ".close", function() {
                var panelId = $(this).closest('li').attr('href');
                $(this).closest("li").remove();
                $('#nav-tabs a:last').tab('show');
            })

    if (counter <= 1) {
        counter = 1;
    } else {
        counter--;
    }
    return false;
})
$(文档).ready(函数(e){
$('#close1')。在('click',this,function()上{
$('.tab1').remove();
$(“#导航选项卡a:最后一个”).tab('show');
})
$(“#close2”)。在('click',this,function()上{
$('.tab2').remove();
$(“#导航选项卡a:最后一个”).tab('show');
})
$('#close3')。在('click',this,function()上{
$('.tab3').remove();
$(“#导航选项卡a:最后一个”).tab('show');
})
$(文档)。在(“单击”,“关闭”,函数()上){
var panelId=$(this.nexist('li').attr('href');
$(this).最近的(“li”).remove();
$(“#导航选项卡a:最后一个”).tab('show');
})

如果(counter最明显的原因是,当您绑定事件时,DOM中没有
.close
元素。一个简单的解决方案是使用
事件委派
,这也可以通过实现。换句话说,事件将绑定到另一个元素,即所需目标元素的父元素。这样,您只需你必须绑定一次事件,而不必在运行时的每个新元素上重新绑定它

$(window).click('.close',yourCloseFunction);

您应该首先将
$(this.nexist('li')
的结果存储到变量中。这样,您将查询它两次。存储结果时,您首先执行的操作也与此无关。@Chips\u 100-同意。将其缓存到变量中会提高效率。缓存还会删除上述操作顺序的相关性。
$(window).click('.close',yourCloseFunction);