2013-09-01 89 views
1

嗨大家我创建了一个使用jquery的datepicker的mvc应用程序。例如,当我点击一个特定的日期时,相应的事件将显示为列表。下面的代码片段工作正常,但是当我跑使用Opera移动模拟器的同一页面的点击事件没有被触发。Jquery Mobile datepicker事件不起作用

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> 

回答

0

你的问题是最有可能的jQuery移动已经用于从浏览器无论您已经在测试,它是工作的歌剧不同的标记。我会建议更改行

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')