0

最初の iframe を非表示にして次の iframe を表示する関数Nextthingがありますが、関数のコードでわかるように、次の 1 つの iframe に対してのみ実行したため、2 番目の iframe を非表示にして表示するアクションを実行すると、次の iframe は表示されますが、間違った場所に表示されます。

1回実行した後に関数を停止するにはどうすればよいですか?

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

更新: iframe がそのページ msg.html から呼び出されることがわかるように、そのページには入力ボタンと送信ボタンがあり、関数Nextthingはそのボタンで次のように呼び出されます。

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

誰かが iframe で送信ボタンを押すと、msgId に基づいて msg.html の次のページの iframe が読み込まれます。この読み込みを 1 回だけにしたいのですが...

4

2 に答える 2

2

あなたが使用することができます

.one() ハンドラー..コードを1回実行し、実行を停止します。

$('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などのグローバル変数を持っており、それをチェックして、トリガーされたときにtrueにします。jqueryの1つの関数をチェックすることもできます。

于 2012-10-01T18:29:15.553 に答える