2012-06-07 28 views
1

我正在使用jscript插入HTML。innerHTML = HTML&JQuery,JQuery不執行

function pluginOrderTotals(OrderTotals) { 
var orderTotalsHTML = ""; 
if (OrderTotals != "") { 
    orderTotalsHTML = "<a id='OrderTotals' href=''>Order Totals</a><p id='OrderTotalText'>" + OrderTotals + "</p><script>$('#OrderTotals').click(function() {   $('#OrderTotalText').toggle('fast');});"; 
} 
document.getElementById("pluginWidgets2Div").innerHTML = orderTotalsHTML;} 

該變量的HTML部分傳遞得很好,但JQuery動畫不起作用。如果我在下面的HTML中對此進行硬編碼,則動畫工作正常。

<div id="pluginWidgets2Div"> 
     <a id="OrderTotals" href="">Order Totals</a> 
      <p id="OrderTotalText">Hiya<br /> 
      Such interesting text, eh?</p> 
     <a id="FreightView" href="">View Freight</a> 
      <p id="FreightViewText" style="display: none">Hiya<br /> 
      Such interesting text, eh?</p> 
     <a href="">Another (3)</a> 
     <a href="">Menu item 4</a> 
     <a href="">One more (5)</a> 
     <script> 
     $("#OrderTotals").click(function() { 
     $("#OrderTotalText").toggle("fast"); 
     }); 
     $("#FreightView").click(function() { 
     $("#FreightViewText").toggle("fast"); 
     }); 
     </script></div> 

感謝您的幫助。

+1

您忘記關閉插入中的'

0

您還沒有關閉<script>標籤:

orderTotalsHTML = "<a id='OrderTotals' href='#'>Order Totals</a><p id='OrderTotalText'>" + OrderTotals + "</p><script>$('#OrderTotals').click(function() { $('#OrderTotalText').toggle('fast');});</script>"; 
1

有有這個代碼伺機一個不錯不顯眼的方式,這樣它會工作。插入HTML時,跳過JavaScript - 單獨處理它。

function pluginOrderTotals(OrderTotals) { 
    var orderTotalsHTML = ""; 
    if (OrderTotals != "") { 
    orderTotalsHTML = "<a id='OrderTotals' href=''>Order Totals</a><p id='OrderTotalText'>" + OrderTotals + "</p>"; 
    } 
document.getElementById("pluginWidgets2Div").innerHTML = orderTotalsHTML; 
} 

$(document).ready(function(){ 
    $("#pluginWidgets2Div").on("click", "#OrderTotals", function() { 
     $("#OrderTotalText").toggle("fast"); 
    }); 
}); 

如果插入時jQuery將應用於HTML,並且您的HTML不需要包含任何JavaScript。