【问题标题】:Popup not triggered for the second time弹窗第二次未触发
【发布时间】:2019-11-26 17:18:14
【问题描述】:

我为每个视图创建了一个单独的弹出窗口,它是第一次工作。当我第一次单击文本时弹出窗口出现。 但是,当我第二次单击相同的文本时,弹出窗口不会出现。如何在每次点击时打开弹出窗口?

jQuery(document).ready(function($) {
$("body").on('click','.popup-trigger',function(e)
{
	
// 	$(this).after( $(this).nextAll('#popup:first') );
// $(this).nextAll('#popup:first').appendTo("body").modal('show');
 console.log('clicked popup');
 e.stopPropagation();
  if(jQuery(window).width() < 767) {
    $(this).after( $(this).nextAll('#popup:first') );
    $(this).nextAll('#popup:first').appendTo('body').modal('show');
  } else {
  //  $('#popup').hide();
    $(this).nextAll('#popup:first').appendTo('body').modal('show');   
  }; 
  
});
});
You can run the code in here to check my problem:

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<div class="view-content">
        <div class="views-row views-row-1 views-row-odd views-row-first">
    <a class="popup-trigger" data-toggle="modal" data-target="#popup"><div class="col-md-3 col-sm-3 text-center"><div class="field-content"></div><div class="field-content">tEST1</div></div></a>
	<div class="modal fade" id="popup" role="dialog" style="display: none;">
    <div class="modal-dialog">
      <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">×</button>
      </div>
        <div class="modal-body" id="popup-content">
         <div class="field-content"><p>Hello..test1</p>
          </div>     
		  </div>
        <div class="modal-footer">
          </div>
      </div>
   </div>
  </div>
 </div>
  <div class="views-row views-row-2 views-row-even">
    <a class="popup-trigger" data-toggle="modal" data-target="#popup"><div class="col-md-3 col-sm-3 text-center" ><div class="field-content"></div><div class="field-content">tEST2</div></div></a>
	<div class="modal fade" id="popup" role="dialog" style="display: none;">
    <div class="modal-dialog">
      <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">×</button>
      </div>
        <div class="modal-body" id="popup-content">
         <div class="field-content"><p>Hello..test2 </p>
          </div>     
		  </div>
        <div class="modal-footer">
          </div>
      </div>
   </div>
  </div>
</div>
  <div class="views-row views-row-3 views-row-odd">
    <a class="popup-trigger" data-toggle="modal" data-target="#popup"><div class="col-md-3 col-sm-3 text-center" ><div class="field-content"></div><div class="field-content">Test3</div></div></a>
	  <div class="modal fade" id="popup" role="dialog" style="display: none;">
    <div class="modal-dialog">
      <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">×</button>
      </div>
        <div class="modal-body" id="popup-content">
         <div class="field-content"><p>Hello..test3 </p>
          </div>     
		  </div>
        <div class="modal-footer">
          </div>
      </div>
   </div>
  </div>
</div>

 </div>
 
  
  

【问题讨论】:

  • 您正在四处移动弹出元素(使用appendTo),因此接下来您单击按钮时,它们不是第一次出现的位置。

标签: javascript jquery html


【解决方案1】:

你可以这样做

  1. 您已经针对id。不需要调用dom modal('show')。但是所有目标ID 都是相同的。所以为每个模式和受尊重的目标按钮添加单独的id。喜欢popup1,popup2...
  2. 目标模式已自动弹出。它是引导程序的默认行为
  3. 而且不需要appendTo('body')。因为它已经在正文中可用了

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
<div class="view-content">
  <div class="views-row views-row-1 views-row-odd views-row-first">
    <a class="popup-trigger" data-toggle="modal" data-target="#popup">
      <div class="col-md-3 col-sm-3 text-center">
        <div class="field-content"></div>
        <div class="field-content">tEST1</div>
      </div>
    </a>
    <div class="modal fade" id="popup" role="dialog" style="display: none;">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">×</button>
          </div>
          <div class="modal-body" id="popup-content">
            <div class="field-content">
              <p>Hello..test1</p>
            </div>
          </div>
          <div class="modal-footer">
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="views-row views-row-2 views-row-even">
    <a class="popup-trigger" data-toggle="modal" data-target="#popup2">
      <div class="col-md-3 col-sm-3 text-center">
        <div class="field-content"></div>
        <div class="field-content">tEST2</div>
      </div>
    </a>
    <div class="modal fade" id="popup2" role="dialog" style="display: none;">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">×</button>
          </div>
          <div class="modal-body" id="popup-content">
            <div class="field-content">
              <p>Hello..test2 </p>
            </div>
          </div>
          <div class="modal-footer">
          </div>
        </div>
      </div>
    </div>
  </div>
  <div class="views-row views-row-3 views-row-odd">
    <a class="popup-trigger" data-toggle="modal" data-target="#popup3">
      <div class="col-md-3 col-sm-3 text-center">
        <div class="field-content"></div>
        <div class="field-content">Test3</div>
      </div>
    </a>
    <div class="modal fade" id="popup3" role="dialog" style="display: none;">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">×</button>
          </div>
          <div class="modal-body" id="popup-content">
            <div class="field-content">
              <p>Hello..test3 </p>
            </div>
          </div>
          <div class="modal-footer">
          </div>
        </div>
      </div>
    </div>
  </div>

</div>

【讨论】:

    【解决方案2】:

    jQuery(document).ready(function($) {
    $("body").on('click','.popup-trigger',function(e)
    {
    	
    // 	$(this).after( $(this).nextAll('#popup:first') );
    // $(this).nextAll('#popup:first').appendTo("body").modal('show');
     console.log('clicked popup');
     e.stopPropagation();
      if(jQuery(window).width() < 767) {
        $(this).after( $(this).nextAll('#popup:first') );
        $(this).nextAll('#popup:first').modal('show');
      } else {
      //  $('#popup').hide();
        $(this).nextAll('#popup:first').modal('show');   
      }; 
      
    });
    });
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css">
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/js/bootstrap.min.js"></script>
    <div class="view-content">
            <div class="views-row views-row-1 views-row-odd views-row-first">
        <a class="popup-trigger" data-toggle="modal" data-target="#popup"><div class="col-md-3 col-sm-3 text-center"><div class="field-content"></div><div class="field-content">tEST1</div></div></a>
    	<div class="modal fade" id="popup" role="dialog" style="display: none;">
        <div class="modal-dialog">
          <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">×</button>
          </div>
            <div class="modal-body" id="popup-content">
             <div class="field-content"><p>Hello..test1</p>
              </div>     
    		  </div>
            <div class="modal-footer">
              </div>
          </div>
       </div>
      </div>
     </div>
      <div class="views-row views-row-2 views-row-even">
        <a class="popup-trigger" data-toggle="modal" data-target="#popup"><div class="col-md-3 col-sm-3 text-center" ><div class="field-content"></div><div class="field-content">tEST2</div></div></a>
    	<div class="modal fade" id="popup" role="dialog" style="display: none;">
        <div class="modal-dialog">
          <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">×</button>
          </div>
            <div class="modal-body" id="popup-content">
             <div class="field-content"><p>Hello..test2 </p>
              </div>     
    		  </div>
            <div class="modal-footer">
              </div>
          </div>
       </div>
      </div>
    </div>
      <div class="views-row views-row-3 views-row-odd">
        <a class="popup-trigger" data-toggle="modal" data-target="#popup"><div class="col-md-3 col-sm-3 text-center" ><div class="field-content"></div><div class="field-content">Test3</div></div></a>
    	  <div class="modal fade" id="popup" role="dialog" style="display: none;">
        <div class="modal-dialog">
          <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">×</button>
          </div>
            <div class="modal-body" id="popup-content">
             <div class="field-content"><p>Hello..test3 </p>
              </div>     
    		  </div>
            <div class="modal-footer">
              </div>
          </div>
       </div>
      </div>
    </div>
    
     </div>
     
      
      

    【讨论】:

    • 删除 appendTo
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-12
    • 2021-11-27
    • 2015-09-03
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多