2012-10-01 268 views
0

我有隱藏第一個iframe並顯示下一個函數的功能Nextthing,但正如你將在函數的代碼中看到的那樣,我只爲一個下一個iframe做了,所以如果他讓爲第二個iframe隱藏它並顯示下一個iframe將顯示但錯誤的地方。一次執行後停止jquery函數

如何讓功能在一次運行後停止?

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

UPDATE:你可以看到該iframe是從頁msg.html叫,以及該頁面有一個輸入和一個提交按鈕,功能Nextthing被稱爲該按鈕是這樣的:

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

當有人按下在iframe的提交按鈕,它會載入基於的msgId msg.html的下一個頁面中的iframe,我想這個負載是隻有一次......

+1

您可以使用[one](http://api.jquery.com/one/)方法。 – undefined

回答

2

可以使用

.one()處理程序..它將運行一次代碼並停止執行。

$('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>); 

}); 
+0

更新了我的功能 – Abude

+0

你如何調用Nextitem()函數 –

+0

我的框架有一個提交按鈕的形式,所以當他提交消息時,它會隱藏iframe並加載下一個消息的下一個iframe;它就像這樣''onclick =「parent.Nextthing();' – Abude

0

爲此,我通常只有一個全局變量,如elTriggers = false,並檢查它並在觸發時檢查它。你也可以看看jquery的one函數。