2012-06-07 2 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 в нем.

Смежные вопросы