我正在尝试让magnific popup包含某些表单。我想通过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语法来嵌套属性处理INSIDE the magnific-popup inizialization。 我的js / jquery知识非常基础,所以谢谢你提示。
答案 0 :(得分: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
});
答案 1 :(得分: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
变量的方法。
如果我不明白您正在尝试做什么,请告诉我。