使用 JQuery 的 JavaScript 中的下拉菜单未调用单击事件

Posted

技术标签:

【中文标题】使用 JQuery 的 JavaScript 中的下拉菜单未调用单击事件【英文标题】:Click event not called by Dropdown in JavaScript using JQuery 【发布时间】:2013-07-02 16:02:16 【问题描述】:

我有两个下拉菜单月份和年份。根据年份,月份列表会发生变化。 这工作正常,但由于某种原因,我的“跨度字段”没有得到更新。问题是当用户选择一个月时,点击事件没有被调用。 注意:这一年完美无缺。

隐藏下拉 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>

【问题讨论】:

也许我错过了 s/t,但我看不出您是如何检测到您的选择标签上的点击事件的。无论如何,这是错误的事件——使用 jQuery .change() 事件来检测对&lt;Select&gt; 标签的更改:$('#mySelect').change(function() //do your stuff ); 不应该$('#month div').html(UpdateMonths);$('#month div').html(UpdateMonths()); 吗?如果您使用完整代码发布 jsFiddle 或其他内容会有所帮助 显示下拉菜单的 HTML。它们是&lt;select&gt; 还是一些使用 span 构建的自定义下拉菜单? 嗨@MrCode,不,我使用的是 div,p 在里面。看我的代码 尝试将选择器更改为$("#month, #year").click 【参考方案1】:

选择器应该是:

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

这样做的原因是因为您想检测对#month#year div 中任意位置的点击。通过在原始代码中定位 span,您只会在 span 本身上获得 click 事件,默认情况下它是一个内联元素,因此它不会填充 100% 的宽度。

【讨论】:

以上是关于使用 JQuery 的 JavaScript 中的下拉菜单未调用单击事件的主要内容,如果未能解决你的问题,请参考以下文章

防止 PHP/JavaScript/JQuery (PayPal) 中的表单操作

使用 JavaScript/jQuery 重定向到 ASP.NET MVC 中的另一个页面

表单标签中的按钮不会提交或响应 Javascript/Jquery

javascript 将HTML中的IMG物件的ALT属性转移到的JavaScript中,使用jQuery的。

使用 javascript/jquery 触发 onchange 事件时更新 DOM 中的哈希值

JavaScript 使用JQuery更改SharePoint 2010中的默认搜索框文本