5

我正在尝试使 宏伟的弹出窗口包含一些表单。我想通过 html 锚点将变量传递给最终的弹出窗口。作为此伪代码中的Var1 :

<!-- HTML launcher element -->
<a href="#test-popup?Var1=X" class="open-popup-link">Show inline popup</a>

<!-- Popup itself -->
<div id="test-popup">
    <form method="post" action="">
        <input type="hidden" id="myVar" name="Var1" value="[placeholder]" />
        <input type="submit" />
    </form>
</div>

<!-- Inizialization -->
<script type="text/javascript">
    $(document).ready(function() {
        $('.open_popup_link').magnificPopup({
        type:'inline',
        midClick: true,

            function() {
                **Here some magic code that sets Var1 = X **
                $('#myVar').attr('value', function(i, attr){
                return attr.replace('[placeholder]', Var1);
                });}
        });
    });
</script>

我需要这个,因为我将生成服务器端(w. PHP)启动器,以便每个链接都会生成不同的表单数据。

编辑:我想到的一种方法是在启动器中使用自定义属性,例如:

<a href="#test-popup" data-var1="X" class="open-popup-link">Show inline popup</a>

但我无法真正获得正确的 jQuery 语法,用于在 magnific-popup 初始化中嵌套处理属性。我的 js/jquery 知识非常基础,所以感谢您的任何提示。

4

2 回答 2

8

在 magnificPopup 设置之外使用单独的点击处理程序如何在点击链接时更改输入的值,只需确保在初始化插件之前绑定它

HTML

按照正确的建议使用数据属性

<a href="#test-popup" data-var1="X" class="open-popup-link">Show inline popup</a>

Javascript

$('.open-popup-link').click(function(){
    $('#myVar').val($(this).data('var1'));
});

$('.open_popup_link').magnificPopup({
   type:'inline',
   midClick: true
});
于 2013-07-28T06:29:23.177 回答
0

尝试:

Javascript/jQuery

<script type="text/javascript">
$(document).ready(function() {

    $('.open_popup_link').magnificPopup({
    type:'inline',
    midClick: true,

        function() {
            **Here some magic code that sets Var1 = X **
             Var1 = $('#myVar').val(); 
            });}
    });
});

不太确定您使用Var1的是什么,但这就是您如何将输入中的值获取到全局Var1变量中。

如果我不明白您要正确执行的操作,请告诉我。

于 2013-07-28T05:52:58.820 回答