Javascript JQuery:在其他事件处理程序中触发自定义事件

Javascript JQuery:在其他事件处理程序中触发自定义事件,javascript,jquery,events,Javascript,Jquery,Events,我有以下HTML和JS代码: <form id="testForm" method="post"> <input type="text" name="x" /> </form> <script type="text/javascript"> var myObj = function() { $(document).on('mytestevent',function(e){ alert('My t

我有以下HTML和JS代码:

<form id="testForm" method="post">
  <input type="text" name="x" />
</form>

<script type="text/javascript">
    var myObj = function() {
        $(document).on('mytestevent',function(e){
            alert('My test!');
        });
        $(document).trigger('mytestevent');
        $('#testForm input[type="text"]').on('change',function(e) {
            alert('change');
            $(document).trigger('mytestevent');
        });
    };

    var o = new myObj();
</script>
问题在于,对于输入更改,自定义事件mytestevent不会在事件处理程序中触发,但会发出更改警报。仅当var o=新的myObj时触发;被称为


有人能解释一下为什么会这样吗?非常感谢。

为什么要将此函数保存在var中,为什么要在其上使用new???它在这里运行良好,但我建议您使用$document.ready。这只是解释此问题的一段代码。奇怪的是,它在JSFIDLE中工作,但在我的FF 9.0.1中不工作。我试图将自定义事件直接绑定到表单元素$'testForm.on。。。但这也不起作用,我认为若元素被完全呈现,它可以用于事件处理和触发。因此,DOM在任何情况下都必须是完整的,即使您使用的是它的渲染部分。