簡體   English   中英

將嵌套模式附加到外部div

[英]Append a nested modal to an external div

如何將此模式附加到外部div?

目前,它嵌套在具有固定高度的容器中。 我需要將其放置在該容器之外。

包含模式的Javascript:

client.fetchQueryProducts({collection_id: collectionID}).then(function(products) {

// Products ==  the array of products within the parent div
for (i = 0; i < products.length; i++) {
product = products[i];
var productHTML =   
'<div class="product" id="buy-button-'+i+'" data-product-id = "'+ product.id+'">'+
'<div class= "product">'+
'<div class = "image-overlay-container">' +
'</div>' +
'</div>'+
'</div>'+
'<div class = "product-modal" >'+
'<div class = "image-overlay-container">' +
'</div>' +
'<div class = "product-modal-close"></div>'+
'</div>';

打開模式的Javascript:

// open product modal
        $('.parent_div').on('click', '.image-overlay, .variant-image, .product-details', function(){
            console.log('clicked');
            $(this).parents('.product').find('.product-modal').show();
            if (!$('.product-modal-underlay').length) {
                $('body').append('<div class = "product-modal-underlay"></div>');
            }
        });

HTML:

<div class= "parent_div">
<div class= "products">
<li>product 1</li>
<li>product 2</li>
<li>product 3</li>
</div>
</div>

<div class= "external_div">
//* where modal would append *//
</div>

的CSS

.parent_div {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: none;
  overflow-y: scroll;
}

非常感謝您的幫助。

您可能要使用JQuery的.wrap()方法(例如doc中的.wrap() ):

<div class="container">
    <div class="inner">Hello</div>
    <div class="inner">Goodbye</div>
</div>

使用.wrap() ,我們可以在內部<div>元素周圍插入HTML結構,如下所示:

$( ".inner" ).wrap( "<div class='new'></div>" );

動態創建新的<div>元素並將其添加到DOM中。 結果是一個新的<div>包裹在每個匹配的元素周圍:

<div class="container">
    <div class="new">
        <div class="inner">Hello</div>
    </div>
    <div class="new">
        <div class="inner">Goodbye</div>
    </div>
</div>

感謝您的幫助,最簡單的解決方法是將ScrollTop(0)添加到父div onClick。

Javascript:

// open product modal
        $('.parent_div').on('click', '.image-overlay, .variant-image, .product-details', function(){
            console.log('clicked');
            $('.parent_div').scrollTop(0);
            $(this).parents('.product').find('.product-modal').show();
            if (!$('.product-modal-underlay').length) {
                $('body').append('<div class = "product-modal-underlay"></div>');
            }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM