在调用 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;
});
我尝试了几种不同的方法,有一次我将 .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;
});