Firefox 4.01在表单元素中调用jQuery"event.preventDefault()"之后忽略了所有内容

Ale*_*lds 0 javascript firefox jquery firefox4

我有一个网页,通过JavaScript动态生成表单HTML并将其注入div带有id的表单中jobJSONConfigurationForm.

要接管表单的Submit元素(id jobJSONConfigurationFormSubmit),我调用submit-div的live函数:

jobJSONConfigurationFormSubmit.live('click', function() {
    event.preventDefault();
    var jobSummaryJSONTextareaValue = $("#jobSummaryJSONTextarea").val();
    var jobSummaryJSONObj = null;
    try {
        jobSummaryJSONObj = JSON.parse(jobSummaryJSONTextareaValue);
    } catch(e) {
        alert('This is not a valid JSON string. Please try again with a JSON-formatted string.');
    }
    updateJobSummaryWithJSONObj(jobSummaryJSONObj);
});
Run Code Online (Sandbox Code Playgroud)

updateJobSummaryWithJSONObj()函数更新页面的数据模型和视图(其他形式和动态生成的HTML).

此代码更新了Chrome 11和10上的模型和视图,但这不适用于Firefox.Firefox 4.01中未更新数据模型和视图.

如果我alert('foo')在该event.preventDefault();行之前 添加,Firefox会向我显示警告对话框,但不会在该函数的其余部分中运行代码.

如果我在行alert('foo')后添加event.preventDefault();,Firefox不会显示警报或在函数的其余部分运行代码.

我在Firefox下使用jQuery做错了什么导致event.preventDefault()失败?谢谢你的建议.

Jas*_*ary 5

event没有为绑定处理程序自动定义.这是第一个论点.我想你的意思是:

jobJSONConfigurationFormSubmit.live('click', function(event) {
  event.preventDefault();
  ...
Run Code Online (Sandbox Code Playgroud)

注意:我还建议使用除以外的名称event.