Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.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 为什么';t美元(this).attr';什么工作?他们带来了';未定义';_Javascript_Jquery - Fatal编程技术网

Javascript 为什么';t美元(this).attr';什么工作?他们带来了';未定义';

Javascript 为什么';t美元(this).attr';什么工作?他们带来了';未定义';,javascript,jquery,Javascript,Jquery,因此,我有几个按钮,因为我不想为每个按钮编写相同的代码,所以我尝试创建一个动态事件处理程序,它可以基于.selected pack类管理所有按钮,但是所有$(this)属性都没有定义,尽管有一个值 这是js: //Function In Test! $('.selected-pack').click(function(event) { if($("#mainconsole").val() == "") { alert("Select Your Console!")

因此,我有几个按钮,因为我不想为每个按钮编写相同的代码,所以我尝试创建一个动态事件处理程序,它可以基于.selected pack类管理所有按钮,但是所有$(this)属性都没有定义,尽管有一个值

这是js:

//Function In Test! 
$('.selected-pack').click(function(event) {

    if($("#mainconsole").val() == "") {
        alert("Select Your Console!")
        return;
    }


    if($("#paymentmethod").val() == "") {
        alert("Select Your Preferred Payment Method!")
        return;
    }

     $("#selectConsolediv").fadeOut("medium", function() {
                    $("#choosePlatformLI").removeClass("active");



        var packipn = $(this).attr('data-ipn');
        var packipnpp = $(this).attr('data-ipnpp');
        var packname = $(this).attr('data-name');
        var packprice = "";

                    console.log(packname);
        if ($("#mainconsole").val() == "PS"){
           packprice = $(this).attr('data-psprice');
        }

        if ($("#mainconsole").val() == "XBOX") {
           packprice = $(this).attr('data-xbprice');
        }


        // Skrill
        $("#mainamount").val(packprice);
        $("#mainipn").val(packipn);
        $("#maindesc").val(packname);
        $("#maindiscount").val($("#discount1").val());

         // PayPal
        $("#mainamountpp").val(packprice);
        $("#mainipnpp").val(packipnpp);
        $("#ppitemname").val(packname);
        $("#maindiscountpp").val($("#discount1").val());


        $("#checkoutPackName").text(packname);
        $("#checkoutCode").text($("#discount1").val());
        $("#checkoutPrice").text("£" + packprice);

                    $("#checkoutdiv").fadeIn("medium", function() {
                        $("#checkoutLI").addClass("active");
                    });
     });

});

你们有人发现错误吗?请尽快给我一个评论,提前谢谢:)

这是因为
$(这)
的范围在
淡出()回调中发生了变化。尝试添加:

var self = $(this);

在顶部紧跟
$('.selected pack')之后。单击(函数(事件){
并在整个过程中使用
self

您希望
引用单击的
。所选的pack
元素还是
#selectConsolediv
元素?根据您在此处编写的内容,我希望它指向
#selectConsolediv
元素..所选的pack元素