控制javascript执行PayPal对象的顺序

时间:2012-11-30 20:16:40

标签: javascript execution queuing

我有一个wordpress页面。我有许多链接到PayPalObjects。 PayPalObjects要求您将代码放在页面的页脚中,并使用触发器来触发购买的元素的ID。例如...

<a id="buysong_4" target="PPDGFrame" title="Click here to buy this  song now.">$</a>

...然后在页面的页脚中:

<script type="text/javascript">
var embeddedPPFlow1 = new PAYPAL.apps.DGFlow( {trigger : 'buysong_1'});

function MyEmbeddedFlow(embeddedFlow) {
    this.embeddedPPObj = embeddedFlow;
    this.paymentSuccess = function() {
        this.embeddedPPObj.closeFlow();
        window.location.href = "http://whatever.com/success/";
    };
    this.paymentCanceled = function() {
        this.embeddedPPObj.closeFlow();
        top.location.href = "http://whatever.com/fail/";

    };

}
var myEmbeddedPaymentFlow1 = new MyEmbeddedFlow(embeddedPPFlow1);
</script>

现在,由于我有几十个这样的链接,我想避免将这些ID硬编码到内容中。例如...

<a class="buysong" target="PPDGFrame" title="Click here to buy this song now.">$</a>

所以我添加了以下jQuery:

jQuery('.buysong').each(function(index, element) {
        jQuery(this).attr('id', 'buysong_' + (index+1) );
   });

呈现的页面正确地将ID属性添加到每个链接,但PayPal js没有正确触发。 IOW:我必须将ID'硬编码'到页面中。这让我觉得jQuery是在PayPal脚本之后发布的。

那么......我怎么'告诉'PayPalObjects脚本只执行-after- jQuery已经分配了ID?或者......即使我完成了这项工作,它仍然无法工作,因为分配了ID attr。我想做什么动态不可靠?

TIA,

--- JC

0 个答案:

没有答案