在调用 JQuery on() 之后,嵌入 javascript 停止 运行

After JQuery on() is called, embed javascript stops running

我尝试了几种不同的方法,有一次我将 .on 调用隔离到一行代码,并在前后放置 console.write() 消息,写入消息不会在调用 on() 之后触发。此脚本标签后的脚本工作正常。

Javascript 是 1.2。也许它太旧了?

$("body").on("change", ".media_frm", function(e)
{

    if(e.target.value.length == 0) return true; //if blank or undefined, it's okay
    var filename = e.target.value.match(/([^<\>\:\"\/\\|\?\*])+$/i)[0]; //get rid of erroneous filepath
    var filetype = filename.match(/[^.]+$/i)[0]; //get extension after '.'
    if($.inArray(filetype, allowedExtensions) === -1)
    {
       alert("Invalid File Type: " + filename); 
        e.target.value = "";
        return false;
    }
    return true;

});

就像我说的,我也将上面的设置为一个函数,直接在元素上调用 on() ,例如:

$(elem).on("change", verifyFunction);

此行之后的所有内容都将停止 运行,就像上面代码块中的所有内容停止 运行 一样。

JQuery 1.6 不支持.on()。我必须使用 .bind().

$("body").bind("change", ".media_frm", function(e)
{

    if(e.target.value.length == 0) return true; //if blank or undefined, it's okay
    var filename = e.target.value.match(/([^<\>\:\"\/\\|\?\*])+$/i)[0]; //get rid of erroneous filepath
    var filetype = filename.match(/[^.]+$/i)[0]; //get extension after '.'
    if($.inArray(filetype, allowedExtensions) === -1)
    {
       alert("Invalid File Type: " + filename); 
        e.target.value = "";
        return false;
    }
    return true;

});