在实际使用它之前,更改JQuery中的属性源会调用URL

时间:2012-02-10 13:20:48

标签: javascript jquery jquery-ui

我有一个带有iframe的网页,该网页最初有一个带有id checkout-window的空src属性:

<div id="checkout-window" style="display:none"><iframe src=""></iframe></div>

我想在JQuery UI模式中显示iframe,所以一旦用户点击checkout按钮,它就会调用pl​​aceOrder函数,该函数使用JQuery来设置iframe源,然后打开模态:

placeOrder() 
{
  $("#checkout-window iframe").attr('src','placeorder.php');
  $("#checkout-window").dialog(
  {
    modal: true,
    autoOpen: true,
    position: 'center',
    show: "slide",
    hide: "slide",
    width: 720,
    height: 700,
    title: "Checkout Process"
  });
}

问题是脚本placeorder.php被调用两次,我最终在我的DB中有两个命令!此外,当用户关闭模态时,它再次调用placeorder.php。当我注释掉对话框代码(仅保留属性的设置)时,它确实调用了一次。

为什么设置iframe src属性已经调用了URL?我应该如何应对这种行为?

谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个

placeOrder() 
{

  $("#checkout-window").dialog(
  {
    modal: true,
    autoOpen: true,
    position: 'center',
    show: "slide",
    hide: "slide",
    width: 720,
    height: 700,
    title: "Checkout Process",
    create: function(){
        $(this).append($("<iframe></iframe>").attr('src','placeorder.php'))
    }

  });
}

答案 1 :(得分:0)

设置iframe的src将立即开始加载该内容。

您需要找到另一种方法来实现这一目标。