0

我有Nextthing隐藏第一个 iframe 并显示下一个 iframe 的函数,但是正如您将在函数的代码中看到的那样,我只为下一个 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,我希望此加载仅一次...

4

2 回答 2

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>);

});
于 2012-10-01T18:28:36.263 回答
0

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

于 2012-10-01T18:29:15.553 回答