0

我有一个 colorbox.js 文件和这样的 javascript 代码:

echo '<script src="js/jquery.colorbox.js"></script>
         <script type="text/javascript" language="javascript">
         $(document).ready(function(){

         $("#iframe").colorbox({iframe:true, width: "830", height: "620"});
      });

    </script>';
echo '<a href="prices.php" id="iframe">see the pricelist</a>';

当我单击一个链接时,它会通过颜色框作为 iframe 弹出窗口打开。但是,如果我在页面完全加载之前单击它,它将作为新页面上的普通链接打开(不会作为 iframe 弹出)。那么我怎样才能让 colorbox 脚本在所有其他 javascripts 和文件之前先加载。所以也许我可以阻止它作为普通页面打开。谢谢你。

4

2 回答 2

0

你可以在 head 标签中调用一个函数,它会在 DOM 被完全解析之前立即执行。这可以使用document.ready

如果你想执行一个你希望能够在$(document).ready()函数中和更早运行的代码块,那么定义一个函数并尽早调用它并将其放入$(document).ready()

// define this in the global scope or some other publicly available scope (not inside a document.ready() call).
function yourFunc() {
   // put your code here
}

$(document.ready(function() {
    yourFunc();
});

您可以在调用 jquery 库后将此函数放在首位,因为您需要 jQuery 库来执行您的iframe代码

于 2013-08-04T05:50:55.727 回答
0

由于您已将颜色框的标签放在自定义标签之前。理想情况下,应该在执行脚本之前加载 Colorbox。此外,document.ready() 将确保在您的代码被触发之前所有 DOM 元素都可用。

您能否发布一个复制您的问题的 JS Fiddle?

于 2013-08-04T05:48:10.127 回答