2012-09-18 32 views
0

我在我的頁面/腸道的簡單函數隱藏顯示被點擊某些選項卡時窗格。世界上最簡單的事情,對吧?jQuery函數只對了一半作品在Internet Explorer

完全在Firefox和Chrome,但在IE中只有一半的作品。它將隱藏所有sopMonthContainers,但無法找到具有匹配ID的容器並顯示它。

$('.sopTab').click(function(e){ 
    if ($(this).hasClass("activeTab") === false){ 
     $(".sopTab").removeClass("activeTab"); 
     $(this).addClass("activeTab"); 
     }; 
    var selectionID = $(this).attr("id"); 
    $(".sopMonthContainer").css("display", "none"); 
    $(".sopMonthContainer#the"+selectionID).css("display", "block"); 
}); 

我希望這不是我忽略了一些愚蠢的錯字,但我在這件事情一直盯着了近一個小時努力,主題不同的變化。我已經嘗試重新選擇器ID以確保它們是唯一的(因此,最後一行選擇器中的「the」),我試過僅使用ID選擇,我嘗試過使用不同的方法來隱藏/顯示...無論如何都是一樣的結果。

編輯:相關的標記。它有一些coldfusion元素,##之間的任何內容都是coldfusion變量。

<div class="sopTab" id="sopContainer#DateFormat(pubdate,'mmmm')#" style=""> 
    #DateFormat(pubdate,"mmmm")#: <span id="sum#DateFormat(pubdate,"mmmm")#">0</span> 
</div> 

<cfoutput query="GetProductBasicInfo"> 
    <div class="sopMonthContainer" style="display:none;" 
    id="theSopContainer#DateFormat(pubdate,'mmmm')#"> 
     [div content goes here] 
    </div> 
</cfoutput> 
+1

你可以發佈一些標記嗎? – billyonecan

回答

1

注比如這個:

<div class="sopTab" id="sopContainerNovember" style="">November: <span id="sumNovember">0</span></div> 

<div class="sopMonthContainer" style="display:none;" id="theSopContainerNovember"> 
當你點擊sopTab

,你建立的選擇是

#thesopContainerNovember 
//^ 

但目標的ID是

#theSopContainerNovember 
//^

的ID不匹配(這是大寫和小寫s

+0

不錯。我試圖找到這個錯字。 –

+0

這實際上解決了它。我擔心這是一件愚蠢的事......感謝您的幫助! – Artfulshrapnel

1

我認爲最後一行應

$(".sopMonthContainer #the"+selectionID).css("display", "block"); 

應該有一個空間在這裏。但我可能是錯的。如果你發佈一個鏈接到jsFiddle或工作示例,這將有所幫助。

+0

禁止....如果它真的是一個唯一的ID,只需做'$('#''+'''')... ...不需要該類 – BLSully

+0

它打破了它在Firefox/Chrome。我想要做的是選擇容器_with_ id =「the」+ selectionID,而不是使用該ID的容器內的東西。 我會試着讓一個jsfiddle或其他東西運行起來,但它是一個很大的jquery/coldfusion頁面的一部分,很難從其中抽取一部分。 – Artfulshrapnel

+0

我認爲他的代碼可能是對的。看起來他隱藏了所有具有'.sopMonthcontainer'類的元素 - 清除顯示器可以這麼說 - 然後通過id選擇一個具有相同類別但也是id的特定元素。我猜測這是不必要的,儘管因爲id是唯一的,所以他只需要通過'$(「#」+ selectionID)'來選擇它' – theyetiman

0

您的網頁出現錯誤。我注意到有一些代碼看起來像有人試圖評論它,但做得不對。

在你sopQuery.cfm文件,在這裏更改代碼:

<script language="javascript"> 
<!-- 
    cfform_submit_status["productSelections"]=null; 

    function check_TF_productSelections(theForm){ 
    cfform_isvalid = true; 
    cfform_error_message = ""; 
    cfform_invalid_fields = new Object(); 

    if (cfform_isvalid){ 
     return true; 
    }else{ 
     alert(cfform_error_message); 
     return false; 
    } 
    } 

//--> 
</script> 

要這樣:

<!-- 
<script language="javascript"> 

    cfform_submit_status["productSelections"]=null; 

    function check_TF_productSelections(theForm){ 
    cfform_isvalid = true; 
    cfform_error_message = ""; 
    cfform_invalid_fields = new Object(); 

    if (cfform_isvalid){ 
     return true; 
    }else{ 
     alert(cfform_error_message); 
     return false; 
    } 
    } 


</script> 
--> 

或者......如果代碼應該是取消註釋,將其更改爲這,但請注意,錯誤將持續爲變量cfform_submit_status不被任何定義:

<script language="javascript"> 

    cfform_submit_status["productSelections"]=null; 

    function check_TF_productSelections(theForm){ 
    cfform_isvalid = true; 
    cfform_error_message = ""; 
    cfform_invalid_fields = new Object(); 

    if (cfform_isvalid){ 
     return true; 
    }else{ 
     alert(cfform_error_message); 
     return false; 
    } 
    } 


</script> 

推測它應該被定義如下:

<script type="text/javascript" src="/bluedragon/scripts/cfform.js"></script>

但我看了一下,這個文件是空的。

+0

謝謝,我會嘗試修復,如果我可以....它在某處的Coldfusion模板中,現在只需要找到它。 – Artfulshrapnel

+0

我更新了我的答案,以幫助更多,因爲我發現了一個空的鏈接js文件。 – theyetiman

+0

嗯。你認爲我可以定義這個變量並讓問題消失嗎?我無法真正弄清楚它在這裏的代碼中尋找什麼。在你問之前,我不能把文件放回去。它存儲在我被鎖定的網站的一部分中。 Yay商業祕密專有後端環境。 – Artfulshrapnel

相關問題