JS错误:未捕获的ReferenceError:未定义makePicSmall

时间:2015-12-09 12:20:34

标签: javascript jquery

当有人点击其中一张小图片时,我就会调用一个函数,如下图所示。 我要执行的函数如下所示:

function makePicSmall(giveString){
    if(firstTime){
        firstTime = NO;
        makePicBig(giveString);
    }else{
        $("#bigPic").animate({width:0, height: 0}, 1000);
        window.setTimeout(makePicBig(giveString,1000));
    }
}

function makePicBig(sourceString){
    document.getElementById("bigPic").style.visibility = "visible";
    document.getElementById("bigPic").src = sourceString;

    $("#bigPic").animate({width:320, height: 586}, 3000);
}

我的功能被称为:

<a class="lilPic1Link" >
    <img src="resources/littleFlyingDoggScreen1.png" alt="Willkommen-Screen" width="52" height="93" id="lilPic1"    onClick="makePicSmall('resources/flyingDoggScreen1.PNG')">
</a>
<a class="lilPic2Link" >
    <img src="resources/littleFlyingDoggScreen2.png" alt="screen1" width="52" height="93" id="lilPic2" onClick="makePicSmall('resources/flyingDoggScreen2.PNG')">
</a>
<a class="lilPic3Link" >
    <img src="resources/littleFlyingDoggScreen3.png" alt="screen2" width="52" height="93" id="lilPic3" onClick="makePicSmall('resources/flyingDoggScreen3.PNG')">
</a>

但是当我点击一张小图片时,我得到:未捕获的ReferenceError:未定义makePicSmall。

这是一张图片,所以你不必想象那些东西。

为什么会出现此错误?我该如何解决? 提前谢谢!

3 个答案:

答案 0 :(得分:2)

请使用truefalse获取Javascript中的布尔值,YESNO是Objective-C变体。

将第45行更改为

var firstTime = true;

和第54行到

firstTime = false;

第58行还有另一个错误,你的括号错误)

makePicBig只接受一个参数。 1000属于setTimeout函数。

最后,既然我们有所帮助,从长远来看,通过将js代码移动到单独的js文件中来节省一些头痛和avoid inline javascript

答案 1 :(得分:1)

var firstTime; function makePicSmall(giveString){ if(firstTime){ firstTime = 'NO'; makePicBig(giveString); } else { $("#bigPic").animate({width:0, height: 0}, 1000); window.setTimeout(makePicBig(giveString), 1000); } } 未定义并使用引号正确分配。将它添加到窗口范围中,如下所示。

img

注意:如果您想检查data attributes的每次首次点击。与下面的<img src="resources/littleFlyingDoggScreen1.png" data-first-time="no" alt="Willkommen-Screen" width="52" height="93" id="lilPic1" onClick="makePicSmall('resources/flyingDoggScreen1.PNG')"> 一起玩。

public function index(Request $request)
{   
    $firstName = '{% First Name %}';
    $lastName = '{% Last Name %}';
    $emailID = '{% Email ID %}';
    $mobileNumber = '{% Mobile Number %}';
    $sms = urldecode($request->input('sms'));

    foreach (json_decode(substr(urldecode($request->input('messages')), 0, -6)) as $user) 
    {
        $smsText = $sms;

        if(strpos($sms, $firstName) != false || strpos($sms, $lastName) != false || strpos($sms, $emailID) != false || strpos($sms, $mobileNumber) != false)
        {             
            $smsText = str_replace($firstName, explode(" ",$user->field_full_name_value)[0], $smsText);
            $smsText = str_replace($lastName, explode(" ",$user->field_full_name_value)[1], $smsText);
            $smsText = str_replace($emailID, $user->mail, $smsText);
            $smsText=str_replace($mobileNumber, $user->field_phone_no_value, $smsText);
        }

        $response = $this->client->request(null,'/api/sendmsg.php',
                    ['query'=>[
                               ['user' => 'ray'],
                               ['pass' => 'as'],
                               ['sender' => 'abc'],
                               ['phone' => 7411220923], //$user->field_phone_no_value
                               ['text' => 'Test Message'], //$smsText
                               ['priority' => 'ndnd'],
                               ['stype' => 'normal']
                    ]]);           
    }  
}

答案 2 :(得分:0)

对于第45行的错误:

var firstTime = true;

因为在javascript中你可以使用var定义每个变量。 而且我不太确定,但如果你解决了这个问题,那么另一个错误也不会显示,因为函数不会抛出错误(因为未定义的变量)。