一次执行后停止jquery函数

时间:2012-10-01 18:25:31

标签: javascript jquery

我有隐藏第一个iframe并显示下一个iframe的函数Nextthing,但正如您在函数代码中看到的那样,我只为下一个iframe执行了操作,所以如果他为第二个iframe隐藏它并显示它将显示但在错误位置的下一个iframe。

如何在一次运行后停止该功能?

function Nextthing (){

    $("#i").hide();
    $('.table').eq(1).find('tbody tr').eq(2).after(
        '<tr><td colspan=10><iframe class="iframe"  src="/msg.html?msgId=' +
        $('.table').eq(1).find('tbody tr').eq(2)
        .find('td a').eq(0).text()+'&constant=1"></iframe></td></tr>);
}

更新:正如您可以看到从该页面msg.html调用iframe,该页面有一个输入和一个提交按钮,并在该按钮中调用函数Nextthing,如下所示:

<input type="submit" onclick="parent.Nextthing();" />

当有人按下iframe中的提交按钮时,它会根据msgId加载msg.html下一页的iframe,我希望这个加载只有一次......

2 个答案:

答案 0 :(得分:2)

你可以使用

.one() handler ..它将运行一次代码并停止执行。

$('input[type=submit]').one('click', function() {
  $("#i").hide();
   $('.table').eq(1).find('tbody tr').eq(2).after('<tr><td colspan=10><iframe class="iframe"     
    src="/msg.html?msgId='+$('.table').eq(1).find('tbody tr').eq(2).find('td 
    a').eq(0).text()+'&constant=1"></iframe></td></tr>);

});

答案 1 :(得分:0)

为此,我通常只有一个全局变量,例如elTriggers = false,并检查它并在触发时使其成立。您还可以查看jquery的one函数。

相关问题