当有人点击其中一张小图片时,我就会调用一个函数,如下图所示。 我要执行的函数如下所示:
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。
为什么会出现此错误?我该如何解决? 提前谢谢!
答案 0 :(得分:2)
请使用true
或false
获取Javascript中的布尔值,YES
和NO
是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定义每个变量。 而且我不太确定,但如果你解决了这个问题,那么另一个错误也不会显示,因为函数不会抛出错误(因为未定义的变量)。