为什么jquery选择加载循环

时间:2009-12-20 02:41:56

标签: jquery jquery-selectors

我无法弄清楚为什么每次更改都会多次提醒我......

    $(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变量给出特定的id。但是,当我更改一个时,它会提醒我x次,其中x是页面上存在的数字......

1 个答案:

答案 0 :(得分:2)

你有多个“alertmessage”div吗?如果是这样,你将加载到所有这些而不仅仅是一个。就个人而言,我不会这样做。而是尝试:

<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)比循环和创建重复事件处理程序更清晰的解决方案。基本上,编码元素中所需的信息。在上面,组合框的ID提供了AJAX调用的ID,并将其链接到要加载的相关DIV。