javascript - Jquery Mobile 日期选择器事件不起作用

标签 javascript jquery html css datepicker

大家好,我使用 jquery 创建了一个带日期选择器的 mvc 应用程序。例如,当我单击特定日期时,该日期上的相应事件将显示为列表。以下代码片段工作正常,但当我使用 opera mobile 运行同一页面时模拟器没有触发点击事件。

jquery:
jquery-ui-1.8.20.custom.css

Note:I used the following link as reference

http://www.hongkiat.com/blog/jquery-ui-datepicker/ 

If anyone give the solution,it ll great helpful to me.

@model IEnumerable<WazUpDataServicesMVC4.Model.EventViewModel>

@{
ViewBag.Title = "Calendar";
  }

 @section Header
  {
 <a href="@Url.Action("Index", "Events")" data-icon="back"  class="ui-btn-    left">Events</a>
 <h1>@ViewBag.Title</h1>



 <link href="@(Url.Content("~/Content/datepicker.css"))" rel="stylesheet" type="text/css" />

  $(function () {
      $('#datepicker').datepicker({
          inline: true,
          //nextText: '&rarr;',
          //prevText: '&larr;',
          showOtherMonths: true,
          //dateFormat: 'dd MM yy',
          dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
          onSelect: function (date, obj) {
              if (date) {
                  $("#listLayers").find("a:[data-date!='" + date + "']").parent().parent().parent().slideUp();
                  $("#listLayers").find("a:[data-date='" + date + "']").parent().parent().parent().slideDown();
              } else {
                  $("#listLayers").find("a").parent().parent().parent().slideDown();
              }
          }

      });

  });
 </script>

  <div id="datepicker"></div>

  <ul data-role="listview" data-inset="true" id="listLayers">


  @foreach (var item in Model)


  {
    string display = "none";

    if (DateTime.Now.ToString("MM/dd/yyyy") == item.DateEventTo.ToString("MM/dd/yyyy"))
    {
        display = "block";
    }


        <li style="display:@(display);"> 

            <a data-date="@(item.DateEventTo.ToString("MM/dd/yyyy"))" class="calendar-link" href="@Url.Action("Events", "Events", new { id = item.EventID,description=item.Description })">
            @item.Description
            </a>

        </li>


   }
</ul>

最佳答案

您的问题很可能是 jQuery Mobile 使用了与您测试过的任何浏览器不同的 Opera 标记,并且它可以正常工作。我建议更改行

if (date) {
    $("#listLayers").find("a:[data-date!='" + date + "']").parent().parent().parent().slideUp();
    $("#listLayers").find("a:[data-date='" + date + "']").parent().parent().parent().slideDown();
} else {
    $("#listLayers").find("a").parent().parent().parent().slideDown();
}

使用 closest() 函数。如果你知道 $("#listLayers").find("a").parent().parent().parent().slideDown(); 应该是什么元素,例如是吗一个 div 或者有一个类或其他一些你可以使用的已知标识符 $("#listLayers").find("a").closest('div')

关于javascript - Jquery Mobile 日期选择器事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18555302/

相关文章:

javascript - 当我试图隐藏 div 时,Jquery .next() 不起作用

javascript类成员在子类中未定义

javascript - 在 contenteditable div 中触发所有 keydown/up 事件

PHP header() 重定向后 JavaScript 未加载

video - 在 HTML5 中通过 RTSP 或 RTP 流式传输

html - 显示 flex 不拉伸(stretch) div

javascript - 使用 id 作为 var 来访问 DOM 元素

javascript - 如何在同级 vue.js 组件之间共享数据?

jquery - 使用 jQuery 获取 gridview 列值

javascript - jQuery 显示属性没有改变,但其他属性是