Почему JQuery выбрать зацикливание нагрузки - PullRequest
2 голосов
/ 20 декабря 2009

Я не могу понять, почему это предупреждает меня несколько раз за каждое изменение ...

    $(function(){
    $("#shift_name_<?php print $shift_id;?>").change(function () {
        $(".alertmessage").load("messages.php?eid="+$("#shift_name_<?php print $shift_id;?>").val(), function(data<?php print $shift_id;?>) {
            if(data<?php print $shift_id;?>!=''){
                alert(data<?php print $shift_id;?>);
            }
        });
    });
    });

В основном, есть несколько циклов, которым присваиваются определенные идентификаторы на основе переменной php. Однако, когда я меняю его, он предупреждает меня x раз, где x - это число существующих на странице ...

1 Ответ

2 голосов
/ 20 декабря 2009

У вас есть несколько div "alertmessage"? Если это так, вы загружаете все из них, а не только один. Лично я бы так не поступил. Вместо этого попробуйте:

<select name="..." id="shift13" class="alert">
  ...
</select>
<div id="alert13" class="alertmessage shift13"></div>

с:

$(function() {
  $("select.alert").change(function() {
    $("div.alertmessage." + this.id).load("messages.php",
        {id: this.id}, function() {
      alert(this.id); // alert13
    });
  });
});

- (imho) гораздо более чистое решение, чем циклический просмотр и создание повторяющихся обработчиков событий. По сути, закодируйте необходимую информацию в элементах. В приведенном выше коде поле со списком предоставляет идентификатор для вызова AJAX и связывает его с соответствующим DIV для загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...