jquery
  • radio-button
  • internet-explorer-8
  • 2010-05-24 28 views 2 likes 
    2

    我對jQuery一般來說很新,但下面的代碼在Chrome和Firefox中完美工作,但在IE8中卻沒有。在IE8中,我必須點擊頁面上的任何位置才能在選擇單選按鈕後開始動畫。這裏是代碼:爲什麼我的jQuery動畫需要在IE8中額外點擊完成?

    $("input[name=method]").change(function() { 
        if($("input:radio[name=method]:checked").val() == 'installer') {  
         $('#download').slideUp(0).removeClass("vendorSize").text("Download").addClass("installerSize").slideDown(500);  
        } 
        else if($("input:radio[name=method]:checked").val() == 'url') { 
         $('#download').slideUp(0).removeClass("installerSize").text("Download From Vendor Website").addClass("vendorSize").slideDown(500); 
        } 
    }); 
    

    任何人都知道爲什麼這打破了IE8,但沒有在其他瀏覽器?如果你覺得使用.animate會更好一些(不是我認爲它應該重要),你能提供一個如何編寫代碼的例子嗎?

    謝謝,

    埃裏克ř

    回答

    0

    在IE中,當您單擊單選按鈕時,不會直接觸發更改事件,因此您必須在觸發之前單擊其他地方。您可以嘗試使用click事件而不是更改事件,該事件應該有效。

    +0

    謝謝。我發誓我試圖做一個點擊事件,它只是打破了我的整個動畫序列,但這絕對奏效。也許我在嘗試之前在代碼中存在一個錯誤... – 2010-05-24 18:10:03

    0

    是輸入顯示?在IE中,任何未顯示的廣播或複選框輸入(即有display="none")都不會拋出正常的點擊或更改事件。

    +0

    他們都是可見的強制.change事件(我會提供一個鏈接頁面,但其在我無法控制的登錄後面)。 – 2010-05-24 17:56:58

    0

    有些事件不會在IE中傳播,與其他瀏覽器相同。在這方面,jQuery 1.4比以前的版本更好。我不得不把.change()在我的一些代碼,以傳播完成改變像這樣的活動 - 使用

    myselector.trigger('change'); /* we made changes so trigger it */ 
    
    +0

    .trigger應該放在哪裏?我相當肯定我使用的是早於1.4版本的jQuery。我繼承了這個網站,目前正在調整它。 – 2010-05-24 18:07:50

    相關問題