2011-06-10 62 views
0

我必須將jQuery附加到發票。有時我必須一次打印多個發票。發生這種情況時,我的每個發票都會出現完全相同的jQuery,並且每次創建額外的元素時都會運行它,而這些元素不需要。有沒有辦法讓jQuery出現多次,只有運行一次纔會出現在代碼中?謝謝你的幫助。停止jQuery重複,示例附加

示例如下。我以前發佈過這個,每個人都問我是怎麼做到的。我不確定如何將代碼添加到帖子中,因爲它表示它太長了。感謝你的幫助。你們真棒。

<table width=180 border=0 cellpadding=0 cellspacing=0> 
       <tr> 
        <td class="barcode_needed">10133</td> 
       </tr> 

<!--This section of code is attached to every order so it repeats when each order prints, (this is a simplified version of the code, I need to make it only run the last time it shows up-->      
<link rel="stylesheet" type="text/css" href="http://barcode-coder.com/css/style.css?ft=1298939919" /> 
<script type="text/javascript" src="http://barcode-coder.com/js/jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="http://barcode-coder.com/js/jquery-ui-1.7.custom.min.js"></script> 
<script type="text/javascript" src="http://barcode-coder.com/js/jquery-barcode-last.min.js"></script> 


<script> 
$('td.barcode_needed').append('<div class="bcTarget">'); 

$('.bcTarget').each(function() { 
var $this = $(this); 
$this.barcode(
    'G' + $this.closest('td.barcode_needed').text(), 
    'code128' 
); 
}); 


</script> 
<!--End Repeating Code--> 
       <tr> 
        <td class="barcode_needed">20133</td> 
       </tr> 


<link rel="stylesheet" type="text/css" href="http://barcode-coder.com/css/style.css?ft=1298939919" /> 
<script type="text/javascript" src="http://barcode-coder.com/js/jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="http://barcode-coder.com/js/jquery-ui-1.7.custom.min.js"></script> 
<script type="text/javascript" src="http://barcode-coder.com/js/jquery-barcode-last.min.js"></script> 


<script> 
$('td.barcode_needed').append('<div class="bcTarget">'); 

$('.bcTarget').each(function() { 
var $this = $(this); 
$this.barcode(
    'G' + $this.closest('td.barcode_needed').text(), 
    'code128' 
); 
}); 


</script> 

       <tr> 
        <td class="barcode_needed">30133</td> 
       </tr> 


<link rel="stylesheet" type="text/css" href="http://barcode-coder.com/css/style.css?ft=1298939919" /> 
<script type="text/javascript" src="http://barcode-coder.com/js/jquery-1.3.2.min.js"></script> 
<script type="text/javascript" src="http://barcode-coder.com/js/jquery-ui-1.7.custom.min.js"></script> 
<script type="text/javascript" src="http://barcode-coder.com/js/jquery-barcode-last.min.js"></script> 


<script> 
$('td.barcode_needed').append('<div class="bcTarget">'); 

$('.bcTarget').each(function() { 
var $this = $(this); 
$this.barcode(
    'G' + $this.closest('td.barcode_needed').text(), 
    'code128' 
); 
}); 


</script> 

</table> 

回答

1

更改重複模板,包括檢查:

<script> 
if (typeof alreadyDone === "undefined") { 
    var alreadyDone = true; 

    $(document).ready(function() { 
    $('td.barcode_needed').append('<div class="bcTarget">'); 

    $('.bcTarget').each(function() { 
     var $this = $(this); 
     $this.barcode('G' + $this.closest('td.barcode_needed').text(),'code128'); 
    });  
    }); 
} 
</script> 

現在應該只運行一次。

另一件事嘗試,我們去掉類,我們去...

<script> 
$('td.barcode_needed').each(function() { 
     $(this).append('<div class="bcTarget">'); 
}); 

$('.bcTarget').each(function() { 
    $(this).barcode('G' + $(this).closest('td.barcode_needed').text(),'code128'); 
    $(this).removeClass('bcTarget');  
    $(this).closest('td.barcode_needed').removeClass('barcode_needed'); 
});  
</script> 
+0

這就是問題所在,我不能添加任何東西只有一次。無論我輸入什麼代碼,都會重複所有正在批量處理的訂單。該代碼必須附加到一個訂單頁面。 – user764728 2011-06-10 13:38:25

+0

@ user764728看看更新後的答案是否適合你... – Fosco 2011-06-10 13:39:29

+0

@ user764728只是稍微編輯了未定義的檢查並簡化了它.. – Fosco 2011-06-10 13:45:08