调用外部函数而不等待jquery中触发的事件

时间:2014-04-30 02:20:58

标签: javascript jquery

我编写了一个示例jQuery程序,发现在jQuery文档加载过程中调用了函数triclick()。

如果我用part2替换part1,那么click()函数工作正常。请澄清我错在哪里?

我希望点击H3时元素H2消失。但元素H2隐藏在负载本身上。

第1部分:

$(document).ready(function() 
{
    $("h1").hide();
    $("h3").click(triclick());      
});

function triclick() 
{
    $("h2").hide();
    alert('H2 is hidden');
}

第2部分:点击

时工作正常
$(document).ready(function() 
{
    $("h1").hide();
    $("h3").click(function() 
    {
        $("h2").hide();
        alert('H2 is hidden');
    });     
});

完整的计划:

3 个答案:

答案 0 :(得分:0)

您已经在匿名函数中传递了两个函数:

$(document).ready(function() {
    $("h1").hide();
    $("h3").click(function(){triclick()});      
});

或者只是:

$(document).ready(function() {
    $("h1").hide();
    $("h3").click(triclick);      
});

Yous应该只将对函数的引用传递给click,而不是调用函数。

答案 1 :(得分:0)

你只需传递函数名称。 ()< - 表示执行它

$(document).ready(function() {
    $("h1").hide();
    $("h3").click(triclick);      
});

答案 2 :(得分:0)

问题是

  。

$( “H3”)点击(triclick());

这意味着,当点击“h3”时,它将运行“triclick”函数返回的结果

但是在这里你应该传递参数函数名,而不是函数execution-result;

你应该知道括号是javascript中的运算符,当它遵循定义的函数名时,它将在函数表达式中执行该函数。

将代码更改为

$(document).ready(function() {  
   $("h1").hide();  
   $("h3").click(triclick);      
});

当点击“h3”时,功能triclick将运行