2013-07-04 50 views
1

我有兩個下拉菜單Month和Year。根據年份,月份列表將會改變。 enter image description here 這工作正常,但由於某種原因,我的「跨領域」沒有得到更新。問題在於,當用戶選擇一個月時,點擊事件沒有被調用。 注:年份完美無缺。使用JQuery在JavaScript中使用Dropdown不會調用的點擊事件

隱藏下拉DIV

function Dropdown (element) { 
    $("#month div, #year div").hide(); // hide all dropdowns 
    if (element) $("#"+element+" div").toggle(); // show dropdown of specified element 
} 

邏輯顯示列表取決於下拉年份值

function UpdateMonths(){ 
var temp = ""; 
    if (parseInt(Get.Year()) <= 2012){ 
     temp = "<p>Month1</p>"; 
    }else{ 
     temp = "<p>Month9</p>"; 
    } 
    return temp; 
} 

顯示月份列表或數年

$("#month span, #year span").click(function(event) { 

    $("#month div").html(UpdateMonths()); // IMPORTANT Show the right list of months 

    event.stopPropagation(); 
    if (!$(this).hasClass('disabled')) { // only open downdown when not disabled 
     Dropdown($(this).parent().attr("id")); 
    } else Dropdown(); // hide all dropdown menues 
}); 

用戶選擇他想要的價值。 不工作了幾個月

$("#location div p, #month div p, #year div p").click(function() { 

    var value = $(this).text(); // grab new location name/month/year. 
    $(this).parent().parent().children("span").text(value); // update selected location name/month/year. 
    RequestToServer(); 
}); 

月下拉

<div id="month"> 
    <span class="input">Januar</span> 
    <div class=".dropdown"> 
    <p></p> 
</div> 
</div> 
+2

也許我錯過了s/t,但我沒有看到你是如何檢測你的選擇標籤上的點擊事件。無論如何,這是錯誤的事件 - 使用jQuery .change()事件來檢測''還是他們用跨度構建的一些自定義下拉? – MrCode

回答

0

的選擇應該是:

$("#month, #year").click(function() { 

這樣做的原因是因爲你想要的#month內檢測到點擊的任何地方和#year divs。通過在原始代碼中定位跨度,您只能獲得跨度本身的點擊事件,默認情況下它是內聯元素,因此它不會填充100%寬度。