单击一个弹出表中的每个细节

时间:2014-10-21 18:11:35

标签: javascript jquery html

我有一个按钮(添加到包)以在弹出表中传输产品的详细信息。

然而,到目前为止,我所拥有的代码只能将产品的一个细节传输到弹出表。

由于我有很多产品清单,我必须在一个弹出式表格中传输产品的这个细节。

如何使这个弹出表充满基于客户点击的产品的信息?

这是小提琴:http://jsfiddle.net/Alkasih/whjc0tta/1/

这是显示产品列表的html代码(在此示例中,我只显示两个产品列表)

        <ul id="yourlist" style="display:inline-block; overflow:hidden;">
        <li>
            <img src="indonu-image/hitam.jpg"/>
            <p class="content-p"><span class="product-name">Forbiden Rice</span></br>
                <span class="content-pp"><span class="content-info">Good Rice</span></br><span class="price-info">200.000</span>
                </span></p>

           <div class="spanish">               
                <span>
                <a href="javascript:void(0)" 
                   onclick="document.getElementById('light').style.display='block';
                            document.getElementById('fade').style.display='block'">Add to bag</a></span>                    

                <span>Buy</span>

           </div>
        </li>


        <li>
            <img src="indonu-image/hitam.jpg"/>
            <p class="content-p"><span class="product-name">Not Forbiden Rice</span></br>
                <span class="content-pp">Good Rice</br>200.000
                </span></p>

           <div class="spanish">               
                <span>
                <a href="javascript:void(0)" 
                   onclick="document.getElementById('light').style.display='block';
                            document.getElementById('fade').style.display='block'">Add to bag</a></span>                    

                <span>Buy</span>

           </div>
       </li>
    </ul>


    <!--Pop Up Div-->       
    <div id="light" class="white_content">

    <div id="headerLightBox">
            Berikut kami tampilkan bon belanja Anda hari ini. Pastikan seluruh spesifikasi sesuai dengan
            kebutuhan Anda.
    </div>

    <table id="tableInformation" cellspacing="0">
    <tr id="headerTableInformation">
        <td>Product Name</td>
        <td>Description</td>
        <td>Price</td>
    </tr>
    <tr id="contentTableInformation">
        <td id="productName-content"></td>
        <td id="description-content"></td>
        <td id="priceContent"></td>
    </tr>
    </table>

    <div id="buttonWrapper">

    <p id="processBlocked">
        <a href = "javascript:void(0)" 
           onclick ="document.getElementById('secondLight').style.display='block';
                     document.getElementById('light').style.display='none';
                     document.getElementById('fade').style.display='block'">Processed</a></p>

    <p id="closeBlocked">
        <a href = "javascript:void(0)" 
           onclick ="document.getElementById('light').style.display='none';
                     document.getElementById('fade').style.display='none'">Cancel</a></p>

        <p id="expired">Pesanan Anda akan expired pada tanggal: </p>

    </div>

</div>

以下是将一个产品的详细信息转移到弹出表中的javascript:

$('#productName-content').html($('.product-name').val());   
$('#productName-content').html($('.product-name').html()); 

$('#description-content').html($('.content-info').val());   
    $('#description-content').html($('.content-info').html()); 

$('#priceContent').html('Rp. ' + $('.price-info').html());

1 个答案:

答案 0 :(得分:0)

所以你有很多事情需要解决,但最重要的是,你的jQuery并没有绑定你的&#34;添加到包&#34;纽扣。所以发生的事情是,在您点击任何按钮之前,jQuery已经将第一个产品的详细信息复制到您的灯箱视图中。然后点击&#34;添加到包&#34;除了使用预先填充的详细信息显示灯箱外,按钮实际上并没有做任何事情。

因此,您需要将实际复制产品详细信息的jQuery代码放入绑定到&#34;添加到包&#34;的点击事件中。纽扣。然后,您还应该删除显示/隐藏灯箱的所有内联javascript,并将其移动到您的jQuery部分。第三,您的产品信息HTML不一致 - 确保每个产品都有相同的分类跨度包围每种类型的细节,否则jQuery不能抓住它。这里有一些清理过的HTML:

<ul id="yourlist" style="display:inline-block; overflow:hidden;">
    <li>
        <img src="indonu-image/hitam.jpg" />
        <p class="content-p"><span class="product-name">Forbiden Rice</span>

            </br>   <span class="content-pp"><span class="content-info">Product One</span>

            </br><span class="price-info">200.000</span>
</span>
        </p>
        <div class="spanish">   <span>
                    <a href="#">Add to bag</a></span>   <span>Buy</span>

        </div>
    </li>
    <li>
        <img src="indonu-image/hitam.jpg" />
        <p class="content-p"><span class="product-name">Not Forbiden Rice</span>

            </br>   <span class="content-pp"><span class="content-info">Product Two</span></span>
            </br><span class="price-info">200.000
                    </span>

        </p>
        <div class="spanish">   <span>
                    <a href="#">Add to bag</a></span>   <span>Buy</span>

        </div>
    </li>
</ul>
<!--Pop Up Div-->
<div id="light" class="white_content">
    <div id="headerLightBox">Berikut kami tampilkan bon belanja Anda hari ini. Pastikan seluruh spesifikasi sesuai dengan kebutuhan Anda.</div>
    <table id="tableInformation" cellspacing="0">
        <tr id="headerTableInformation">
            <td>Product Name</td>
            <td>Description</td>
            <td>Price</td>
        </tr>
        <tr id="contentTableInformation">
            <td id="productName-content"></td>
            <td id="description-content"></td>
            <td id="priceContent"></td>
        </tr>
    </table>
    <div id="buttonWrapper">
        <p id="processBlocked"> <a href="#">Processed</a>

        </p>
        <p id="closeBlocked"> <a href="#">Cancel</a>

        </p>
        <p id="expired">Pesanan Anda akan expired pada tanggal:</p>
    </div>
</div>

和jQuery:

$(".spanish").on('click', 'a', function (e) {
    // get the product details container
    var $product_container = $(this).closest('.spanish').prev('.content-p');
    var $product_name = $product_container.find('.product-name').text();
    var $product_info = $product_container.find('.content-info').text();
    var $product_price = $product_container.find('.price-info').text();

    $('#productName-content').text($product_name);
    $('#description-content').text($product_info);
    $('#priceContent').text($product_price);

    $('#fade').fadeOut();
    $('#light').fadeIn();
    e.preventDefault();
});
$('#processBlocked a').on('click', function (e) {
    $('#secondLight').fadeIn();
    $('#light').fadeOut();
    $('#fade').fadeIn();
    e.preventDefault();
});
$('#closeBlocked a').on('click', function (e) {
    $('#light').fadeOut();
    $('#fade').fadeIn();
    e.preventDefault();
});

小提琴:http://jsfiddle.net/whjc0tta/6/