1

我正在尝试以特定方式设置客户端验证。我有一些动态的表单,在单击按钮或执行某些操作之前不会显示。所以,这就是我正在做的事情:

$(function() {
    $('#content').on('load', 'form', function(e) {
        /* every form will be inside of div#content */
        setUpStuff();
    });
});

然后,如果按下按钮:

$('#my-button').click(function() {
    displayForm();
    $('form').trigger('load');
});

问题是当该事件被触发时这个函数必然会触发永远不会触发。我知道页面加载后 div#content 就存在,因为它是静态的。形式是动态的。但是,即使将表单作为静态标记放入页面中并且在页面加载时可用,$('form').trigger('load');仍然不起作用。

这段代码我哪里出错了?

4

2 回答 2

2

尝试使用自定义事件名称,load已知事件不会正确冒泡,并且在这种情况下并不能真正描述正在发生的事情。

$(function() {
    $('#content').on('create', 'form', function(e) {
        /* every form will be inside of div#content */
        setUpStuff();
    });
    $('#my-button').click(function() {
        displayForm();
       $('form').trigger('create');
    });
});
于 2013-03-12T15:59:11.257 回答
1

nvm,看起来你明白了:)

我想我知道你在做什么,你试过使用 .load() 方法吗?

$('#my-button').click(function() {
    displayForm();
    $('form').load(function(){
     setUpStuff();
  });
});

http://api.jquery.com/load-event/

于 2013-03-12T16:17:14.907 回答