【问题标题】:Featherlight hide div on CloseFeatherlight 在关闭时隐藏 div
【发布时间】:2016-04-05 21:43:42
【问题描述】:

我正在尝试创建一个包含提交数据的预览屏幕,并将其显示在 Featherlight Lightbox 中。

我有以下示例代码。

jQuery(document).ready(function() {

//Triggle when Preview Button is Clicked.
jQuery('.OpenLightBox').off('click').on('click', function( e ) {

    var pa_firstname=   jQuery('input[name="pa-[name_first]"]').val();
    var pa_lastname=    jQuery('input[name="pa-[name_last]"]').val();
    if (pa_firstname == null || pa_firstname == '') {
        alert('Cannot be empty');
        return false;
    } else {

    jQuery('.LightBox').empty();
    jQuery('.LightBox').append('First Name in Ajax is' + pa_firstname + ' And Last Name in Ajax is ' + pa_lastname);

            //alert('done');

    }

    jQuery.ajax({
        url : padvisor_ajax.ajax_url,

        type : 'POST',
        dataType: 'json',
        data : {
            action: 'padvisor_test_ajaxcall_lightbox',
            pa_first_name: pa_firstname,
            pa_last_name: pa_lastname
        },
        success: function (data) {
            jQuery.featherlight(jQuery('.LightBox'), {});
            jQuery('.LightBox').toggle();

        }

    });

    return false;

}); 

然后我有以下 html 代码来创建 2 个字段,一个提交按钮和一个预览按钮:

<form id="pd_test">
<span id="pa-[name_first]" class="pa_name_first"><label for="pa_name_first" >First Name</label>
<input type="text" name="pa-[name_first]" id="pa-[name_first]" value=""/>
</span>';
<span id="pa-[name_last]" class="pa_name_last"><label for="pa_name_last" >Last Name</label><input type="text" name="pa-[name_last]" id="pa-[name_last]" value=""/></span>
<button type="submit" value="Submit">Send Now</button>

<button value="preview" class="OpenLightBox">Preview</button></form>
<div class="LightBox" style="width: 300px; height: 60px; display:none;">This is the content, let the content dwell here</div>

当我使用 .toggle 时,我可以使用我的 DIV 向羽毛灯箱显示,但是当我关闭羽毛灯箱时,我无法理解如何隐藏 &lt;div&gt;

谁能指导我在羽毛灯箱关闭时如何隐藏 DIV,并让我知道这是否是正确的做法?

我的目标...从表单字段收集输入,通过 ajax 发送到 php 进行处理,并在成功时显示在预览灯箱中,我可以在其中有一个关闭按钮和一个提交按钮。关闭按钮可以关闭它,但是提交按钮将具有与表单提交按钮相同的功能。

问题 1:我需要在羽毛灯关闭时切换隐藏。

问题2:当featherlight灯箱现在关闭时,我再次点击预览按钮,DIV只调用empty但它不调用.append来输入值。

【问题讨论】:

  • 你能创建一个 JSFiddle 吗?
  • 我还注意到了一个新的错误.. 如果我关闭羽化窗口,然后再次单击预览按钮,将调用 .empty() 但不会调用 .html,因此 div结果是空的。
  • 这是指向 jsfiddle 的 [链接] (jsfiddle.net/14qj5yjf) 链接。我通过删除 Ajax 部分对其进行了一些简化。

标签: javascript php jquery


【解决方案1】:

您需要将内容正确地传递给featherlight,并且也不需要切换元素,因为featherlight 会在关闭事件中执行此操作。

HTML

<span id="pa-name_first" class="pa_name_first"><label for="pa_name_first" >First Name</label>
   <input type="text" name="pa-name_first" id="pa-name_first" value=""/>
</span>
<span id="pa-name_last" class="pa_name_last"><label for="pa_name_last" >Last Name</label><input type="text" name="pa-name_last" id="pa-name_last" value=""/></span>
<button type="submit" value="Submit">Send Now</button>
<button type="button" class="OpenLightBox">Preview</button>
<div class="LightBox" style="width: 300px; height: 60px; display:none;">
  <span id="content"></span>
</div>

jQuery

//Triggle when Preview Button is Clicked.
jQuery('.OpenLightBox').off('click').on('click', function( e ) {

   var pa_firstname=   jQuery('input[name="pa-name_first"]').val();
   var pa_lastname=    jQuery('input[name="pa-name_last"]').val();
   if (pa_firstname == null || pa_firstname == '') {
       alert('Cannot be empty');
       return false;
   } else {
       var content = 'First Name in Ajax is' + pa_firstname + ' And Last Name in Ajax is ' + pa_lastname+'';
       jQuery('#content').html("");
       jQuery('#content').html(content);
       jQuery.featherlight('#content', {});
   }
});

工作 JSFiddle:https://jsfiddle.net/rdawkins/9vktzw88/

【讨论】:

  • 我可以知道#content是否是featherlight的默认div吗?我试过你的小提琴,它工作得很好,就像它应该的那样,但我不明白'#content'以及你在哪里创建那个div。如果我对此代码有更多疑问,我是开始一个新线程还是继续在这里?我想添加一个提交按钮,所以如果点击它会调用Query('#Form_name').on('submit',function(event)并提交表单+关闭灯箱
  • #content 是我在 &lt;div class="Lightbox"&gt;&lt;/div&gt; 中创建的一个跨度,您需要开始一个新线程并具体说明您的问题,这样它才能帮助其他有类似问题的人。如果这回答了您最初的问题或解决了您的问题,请接受答案;)
  • 这是朝着我将要做的事情迈出的一大步,我会再试一次并开始一个新线程。我找不到接受答案的按钮。
  • 太好了,我很高兴能帮上忙!祝你好运:)
猜你喜欢
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-05
相关资源
最近更新 更多