单击父元素后如何打开 JQM 弹出窗口
How to Open JQM Popup After Clicking Parent Element
我正在尝试使用以下 HTML 布局打开 jQueryMobile 弹出窗口(子 div 的)...
<div class="parent">
<div class="child" data-role="popup">Foo</div>
</div>
<div class="parent">
<div class="child" data-role="popup">Bar</div>
</div>
这是我用来在用户单击父 div 时打开弹出窗口的脚本。我不仅不知道为什么这个脚本不起作用,而且不知道如何打开弹出窗口。
$(".parent").click(function () {
$(this).children(".child").popup("open");
});
试试这个..
<div class="parent">
<div class="child" data-role="popup">Foo</div>
</div>
<div class="parent">
<div class="child" data-role="popup">Bar</div>
</div>
$('.parent').click(function() {
$(this).find('.child').popup("open");
});
问题是,当 jQM 'enhances' 弹出窗口时,它会将其从 parent DIV 中删除,并在 ui-popup-container DIV与内容 DIV 相同级别。因此,依赖通用的 class 弹出窗口名称是行不通的。
您需要以某种方式指明每个 child 属于哪个 parent。您可以使用 id 或 data-attribute 等
这是一个使用 data-attributes 的例子:
<div class="parent" id="parent1">
<div class="child" data-role="popup" data-parentid="parent1">
<p>Foo</p>
</div>
</div>
<div class="parent" id="parent2">
<div class="child" data-role="popup" data-parentid="parent2">
<p>Bar</p>
</div>
</div>
$('.parent').on("click", function () {
var id = $(this).prop("id");
$('[data-role="popup"]').each(function(){
var pid = $(this).jqmData("parentid");
if (id == pid){
$(this).popup("open");
}
});
});
Working DEMO
我正在尝试使用以下 HTML 布局打开 jQueryMobile 弹出窗口(子 div 的)...
<div class="parent">
<div class="child" data-role="popup">Foo</div>
</div>
<div class="parent">
<div class="child" data-role="popup">Bar</div>
</div>
这是我用来在用户单击父 div 时打开弹出窗口的脚本。我不仅不知道为什么这个脚本不起作用,而且不知道如何打开弹出窗口。
$(".parent").click(function () {
$(this).children(".child").popup("open");
});
试试这个..
<div class="parent">
<div class="child" data-role="popup">Foo</div>
</div>
<div class="parent">
<div class="child" data-role="popup">Bar</div>
</div>
$('.parent').click(function() {
$(this).find('.child').popup("open");
});
问题是,当 jQM 'enhances' 弹出窗口时,它会将其从 parent DIV 中删除,并在 ui-popup-container DIV与内容 DIV 相同级别。因此,依赖通用的 class 弹出窗口名称是行不通的。
您需要以某种方式指明每个 child 属于哪个 parent。您可以使用 id 或 data-attribute 等
这是一个使用 data-attributes 的例子:
<div class="parent" id="parent1">
<div class="child" data-role="popup" data-parentid="parent1">
<p>Foo</p>
</div>
</div>
<div class="parent" id="parent2">
<div class="child" data-role="popup" data-parentid="parent2">
<p>Bar</p>
</div>
</div>
$('.parent').on("click", function () {
var id = $(this).prop("id");
$('[data-role="popup"]').each(function(){
var pid = $(this).jqmData("parentid");
if (id == pid){
$(this).popup("open");
}
});
});
Working DEMO