Php jQuery没有';DOM元素被替换时无法工作

Php jQuery没有';DOM元素被替换时无法工作,php,jquery,dom,Php,Jquery,Dom,我有一个类别选择,然后将子类别加载到一个下拉列表中,当子类别被选中时,它应该根据它们的选择通过jQuery加载不同的元素 这是HTML <li> <label for="cat">Choose The Category..</label> <select name="cat" class="required"> <option type=""></option> <?

我有一个类别选择,然后将子类别加载到一个下拉列表中,当子类别被选中时,它应该根据它们的选择通过jQuery加载不同的元素

这是HTML

<li>
      <label for="cat">Choose The Category..</label>
      <select name="cat" class="required">
      <option type=""></option>
      <? 
      $conn = $db->query("SELECT * FROM categories WHERE parent_id = 0 ORDER BY name ASC");
        while($a = $db->fetch_array($conn)) {
            echo "<option value='{$a['category_id']}'>{$a['name']}</option>";
        }
        echo "</select>";
      ?>
      </select>
    </li>
    <li id="category">
    </li>
第一个函数加载子类别很好,第二个函数只有在我手动添加子类别时才起作用,如果我通过JS加载,它们不起作用,通过firebug检查调用,只加载子类别,有什么想法吗?

您需要使用:

现在和将来,为与当前选择器匹配的所有元素将处理程序附加到事件

实时事件侦听器附加在文档根目录上。当它们被激发时,jQuery将检查您传入的选择器,以查看元素是否匹配。这允许您监听与选择器现在和将来匹配的元素上的事件

示例(未测试):

    $("select[name=cat]").change(function() {
    if($("select[name=cat] option:selected").val() != "") {
        $("#category").append(get_sub($("select[name=cat] option:selected").val()));
    }
});
$("select[name=category]").change(function() {
    if($("select[name=category] option:selected").val() != "") {
        $("#filters").append(get_filters($("select[name=category] option:selected").val()));
    }
});
$("select[name=cat]").live('change', function() {
    if($("select[name=cat] option:selected").val() != "") {
        $("#category").append(get_sub($("select[name=cat] option:selected").val()));
    }
});
$("select[name=category]").live('change', function() {
    if($("select[name=category] option:selected").val() != "") {
        $("#filters").append(get_filters($("select[name=category] option:selected").val()));
    }
});