2010-03-29 54 views
5

我正在使用Jeditable进行就地编辑。我正在使用的控件有select类型。当用户点击该领域,将产生以下select控制:jQuery + Jeditable - 在选择更改时检测

<div id="status" class="editable_select"> 
    <form> 
     <select name="value"> 
      <option value="Active">Active</option> 
      <option value="Inactive">Inactive</option> 
     </select> 
     <button type="submit">Save</button> 
     <button type="cancel">Cancel</button> 
    </form> 
</div> 

什么,我试图找出是如何使用jQuery时select控制变为检测,特别是因为它没有一个ID属性。

这是我到目前为止,但该事件没有得到触发:

$(document).ready(function() { 
    $('#status select').change(function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

UPDATE

更新到1.4.2 jQuery的解决我的问题随着使用马特的解。

回答

7

您可能会发现它,因为select字段在加载后(以及发生事件绑定后)已添加到页面中。

您仍然可以捕捉变化的事件,如果这是通过使用live

$(document).ready(function() { 
    $('#status select').live('change', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 

注意,但是自1.7,该on()方法是绑定的事件处理程序的首选方式的情况。上面的等价物是;

$(document).ready(function() { 
    $(document).on('change', '#status select', function() { 
     alert("Change Event Triggered On:" + $(this).attr("value")); 
    }); 
}); 
+0

得到它的工作,谢谢。但是,由于某些原因,此事件在IE中不会冒泡。思考? – 2010-03-29 21:30:20

+0

jQuery应该如此。你用什么代码不起作用? – Matt 2010-03-29 21:40:16

+0

@Matt:我使用您提供的代码 - 在除IE8以外的其他浏览器中工作正常。 – 2010-03-29 21:42:51