我是jquery的新手,但是遇到了一些问题。请任何人告诉我,这是以下代码中的代码块,它调用了'hideAllMessages'函数。点击('信息','错误','警告','成功')
,它正在调用hideAllMessages
函数,但无法理解哪个是代码块,谁在执行此任务。
由于下一行中没有javascript'onclick'功能。
<li><a href="#" class="trigger info-trigger">Info</a></li>
实际上我想在点击('信息','错误','警告','成功')后询问代码流。
答案 0 :(得分:0)
首先从jquery准备好文档时调用hideAllMessages();
。
之后,您的showMessage(myMessages[i]);
被调用,hideAllMessages();
再次被用作showMessage()
中的<{1}}。
答案 1 :(得分:0)
尝试Ctrl+F
:-)您似乎忽略了以下代码部分:
$(document).ready(function(){
alert("ready function called");
// Initially, hide them all
hideAllMessages();
...
此外,它是从showMessage
- 函数:
$('.'+ type +'-trigger').click(function(){
hideAllMessages();
$('.'+type).animate({top:"0"}, 500);
});
HTML中不需要onclick
属性,install event listeners的常用方法纯粹是DOM任务(jQuery method)。
答案 2 :(得分:0)
首先,
jQuery以类似于javascript的方式工作。
除非被调用,否则函数不会被“激活”。
仔细查看代码,您会发现有一个
$(document).ready(function{
//insert code here
});
上面的代码会在您的页面加载时从上到下运行。
在这段代码完成运行后,你的jQuery将停止运行。
但是你也会意识到每个“li”都有一个“触发”功能,它会激活show-message功能,显示各自的信息。
这就是你的代码如何工作
编辑:
$(document).ready(function(){
alert("ready function called");
// Initially, hide them all
hideAllMessages();
// Show message
for(var i=0;i<myMessages.length;i++)
{
showMessage(myMessages[i]);
}
加载页面时,“showMessage函数被调用4次。(正如您所看到的,页面加载时会有4条弹出消息。)
每次调用showMessage函数时,都会发送一个“type”。其中包括信息,错误等。
function showMessage(type)
{
alert("showMessage function called");
$('.'+ type +'-trigger').click(function(){
hideAllMessages();
$('.'+type).animate({top:"0"}, 500);
});
}
然而,在每个showMessage函数中,没有任何实际运行,该函数仅在单击“按钮”时运行。
$('.info-trigger'.click(function(){
在上面的例子中,'info'类型被传递到showMessage函数,它将替换'type',从而生成info-trigger。
单击信息按钮时,该函数将首先运行hideMessage函数,然后运行animate函数。
希望这能解释。