Остановите повторение jQuery, пример прилагается - PullRequest
0 голосов
/ 10 июня 2011

Я должен прикрепить 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 Ответ

1 голос
/ 10 июня 2011

Измените свой повторяющийся шаблон, чтобы включить проверку:

<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>
...