我相信我一定是失去了一些東西就這麼簡單。我有一個名爲showHome,showRecords,showFinance的名爲showHome,showRecords,showFinance的3個頁面,我也有3個div命名爲divHome,divRecords,divFinance,並在每個div中我有3個iframe,分別命名爲iframeHome,iframeRecords,iframeFinance。jQuery的內容加載到iframe中只有第一個按鈕點擊
這裏的目標是在頁面渲染後加載第一個iframe,然後當用戶單擊下一個按鈕時,下一個iframe將動態設置其源代碼,然後顯示div以便用戶可以看到外部內容,仍然在我的域名上,但在其他地方。當然,第三個按鈕點擊也是一樣,iframe傳遞一個url來加載,然後顯示div。現在,當用戶點擊其他按鈕之一時,div應該顯示或隱藏,沒有理由重新加載內容。
所以我需要跟蹤哪個被點擊按鈕,這樣,如果有一個1,將只顯示或隱藏DIV,否則iframe的需要進行設置。我有一個版本的工作,不是很優雅的,所以我試圖用更少的代碼編寫這一點,這裏是我有什麼不工作,我知道爲什麼,但我不知道如何解決它。
我現在的劇本是這樣的
var showHome_clicked = '1';
var showDataMart_clicked = '0';
var showFinance_clicked = '0';
var showCost_clicked = '0';
var showSchedule_clicked = '0';
var showPerformance_clicked = '0';
var showWinsight_clicked = '0';
var pageToLoad = "http://sp2010/dashboard/0045/default.aspx";
function showRequestedContent(){
var displayedDiv = $('div.contentDiv').filter(function(){
if($(this).css('display') != 'none'){
alert(buttonClicked);
$('.contentDiv:visible').fadeOut("fast");
$("#div" + ($(this).index()+1)).show().fadeIn("slow");
}
});
}
$("input").click(function(e)
{
var buttonClicked = (e.target.id + '_clicked');
var targetIframe = (e.target.id).replace("show", "iframe");
/* Here I need to check the variable that i created, but it contains the name of my manipulated value not the 1 or 0 I need to check for, not sure how to do this? */
if(buttonClicked == '0'){
$(targetIframe).attr('src', pageToLoad + '?isdlg=1');
buttonClicked = '1';
alert("zero");
showRequestedContent;
}
else if(buttonClicked == '1'){
showRequestedContent;
alert("one");
}
});
-------------更新了這個現在正在---------------
var buttonClicked = 'showHome';
var currentDiv = 'divHome';
$('.switchIframe').click(function(e){
e.preventDefault();
if (e.target.id != buttonClicked){
targetDiv = (e.target.id).replace("show", "div");
var $targetIframe = $($(this).data('target')),
src = $(this).data('src');
if($targetIframe.attr('src') != src){
$targetIframe.attr('src', src);
}
showDiv(targetDiv);
hideDiv(currentDiv);
currentDiv = targetDiv;
buttonClicked = e.target.id;
}
});
function showDiv(id) {
var $sDiv = $('#' + id);
$sDiv.show(500);
}
function hideDiv(id) {
var $hDiv = $('#' + id);
$hDiv.hide(200);
}
$(document).ready(function(){
$('#divHome').show();
});
樣子,將工作,我仍然有同樣的問題,不過,我似乎無法找出一種方法來動態設置targetIframe varible,我不斷收到一個未定義的錯誤由於targetIframe的值定「 iframeHome「< - 一個字符串值。我期待當我創建targetIframe變量,我可以設置實際的目標iframe,這是我試圖設置buttonClicked_clicked變量的同樣的問題,我得到一個字符串值,這是正確的,但是不是我需要做的。否則,這似乎很好! – digitalslavery 2013-03-17 09:23:02
@digitalslavery - 我已經更新上面。希望有所幫助。 – ahren 2013-03-17 12:36:04
謝謝你的更新,我仍然試圖圍繞如何工作。我發現幫助我的是將我的動態創建的變量傳遞給一個函數以完成此工作。感謝您的幫助。這就是我現在所需要的 – digitalslavery 2013-03-17 18:26:07