on(' click' ....)仅在第二次点击后触发

时间:2016-04-29 20:25:10

标签: javascript jquery html iframe

这是脚本。当我在加载时点击它,就像一个魅力。当我通过动态创建的元素单击它时,第一次单击会看到实际的html shift(拉伸类型并返回)。但它确实可以在第二次点击时保持一致。

<script>
$(document).on('click', '.iframe_add', function(){        
    var element = $(this).attr('name');
    $('#iframe_target').html('<iframe src="https://104.131.18.58/t3/default/ajax_new_secured_asset_debt_creator?all='+element +'" frameborder="0" width="580" height="300" scrolling="yes" id="myFrame"></iframe>');
});    
</script>

我真的不知道怎么回事,我很感激任何帮助。

P.S。我看到了这个,但我不确定它是否适用(似乎处理一些datepicker问题) jquery on.click doesn't work on first click (with a dynamic element)

编辑:

这是HTML

<div id="iframe_modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">X</button>
        <h4 class="modal-title">Edit Information</h4>
      </div>
      <div id="iframe_target" class="modal-body">
      </div>
    </div>
  </div>
</div>

编辑2 - 控制台日志(完全相同):

<a href="#iframe_modal" name="14-1136--Debts_secured-asset_page" class="iframe_add" data-toggle="modal">New</a>

2 个答案:

答案 0 :(得分:0)

您的控制台日志:

<a href="#iframe_modal" name="14---asset-asset_page" class="iframe_input btn btn btn-primary" data-toggle="modal">New</a>

显示其中一个类是iframe_input

当您点击具有名为.iframe_add的类的元素时,您的JavaScript告诉我们您希望触发click事件。

尝试

$(document).on('click', '.iframe_input', function(){

答案 1 :(得分:0)

确定。所以这是我提出的hackity-hack解决方案(如果你不能击败他们 - 而且他们是我的意思是javascript,加入他们):

parent.document.getElementsByClassName("iframe_input")[0].click();

当模态隐藏时,我只是强制点击第一个输入元素,这似乎解决了这个问题。话虽这么说,这似乎真的很hacky,我很清楚为什么这是错误的,但它确实像魅力一样....