【问题标题】:Issue with open a Popup / Dialog box in javascript在javascript中打开弹出/对话框的问题
【发布时间】:2014-07-15 13:38:52
【问题描述】:

我的应用程序中有一个动态选择框。单击任何列表项时,我需要在弹出窗口中显示项目详细信息。但是我无法打开现在没有发生的弹出/对话框,我的代码是,

 $( "#locationList" ).on( "click", "li", function( event ) { 
   alert("click event");
   $.mobile.changePage('#myPopupDialog', 'pop', true, true);
}); 

我可以看到警报,但对话框没有打开。

<div data-role="dialog" id="dialog">
      <div data-role="header">
        <h1>List Item details</h1>
      </div>

      <div data-role="main" class="ui-content">
        <h2>Welcome to my Popup Dialog!</h2>
      </div>

      <div data-role="footer">
        <h1>Footer Text</h1>
      </div>
    </div>

列表元素应动态来自 Db,例如,

var optionheading = '<li value="Select Location">Select Location</li>';
for (var i = 0; i < res.rows.length; i++)
            {
               var opt  = '<li value="';
               opt += res.rows.item(i).Location;
               opt += '">';
               opt += res.rows.item(i).Location;
               opt += '</li>';
               $("#locationList").append(opt);
            }
          $("#locationList").listview('refresh');

HTML:

<ul data-role="listview" id="locationList" data-dismissible="false" style="height: 150px;border:1px solid #ccc;background:#f2f2f2;font:normal 11px/15px arial;padding:6px;color:#333; overflow: auto" name="locationList" data-inset="true">
                </ul>

有什么建议!!

【问题讨论】:

  • 你的JS中提到的元素都不在HTML sn-p中。
  • 对不起,我不清楚你的说法
  • @IanClark 的意思是:HTML 中的locationList 元素在哪里
  • 它在我的其他主页中。但我从那个页面写了对话框
  • 你应该发布与你的 JS 相关的 HTML

标签: javascript jquery jquery-ui jquery-mobile


【解决方案1】:

你的对话框有

id="dialog"

但是你的 javascript 试图弹出一个 id 为 myPopupDialog 的对话框:

$.mobile.changePage('#myPopupDialog', 'pop', true, true);

这些 ID 必须匹配!

如果您使用的是 jQM 1.4.x,您的对话页面应该使用 data-dialog="true":

<div data-dialog="true" id="myPopupDialog">

这是一个有效的DEMO

【讨论】:

  • 是的,我需要相同的,但是如何在移动屏幕的中心显示弹出窗口
  • @Precious,您可以使用弹出小部件而不是对话框页面:demos.jquerymobile.com/1.4.3/popup,将 data-position-to="window" 设置在页面中心。
  • @Precious,这里是使用弹出窗口更新的小提琴:jsfiddle.net/ezanker/4K9k4/1
  • 但是我应该在哪里写弹出窗口。在同一页面标签内还是在页面标签外?
  • @Precious,看看我的 jsfiddle,弹出标记位于与页眉/内容/页脚 div 相同级别的页面 div 中。为了可读性,我把它放在页面 div 的结束标记之前的那些 div 之后。然后你可以根据你点击的li,根据需要动态设置弹窗的内容。
猜你喜欢
  • 1970-01-01
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
相关资源
最近更新 更多