我正在开发一个网站,现在正在所有浏览器中测试,我目前正在使用firefox进行测试,并在使用event.sourceElement时发现并出错?
我需要e.srcElement做的是返回值,下面有一点我展示了如何获得返回值PropID的示例。
我编写了一个使用e.srcElement的Jquery函数,它看起来如下:
$(function () {
$(".DownloadLink").click(function (e) {
e.preventDefault();
var PropID = getParameterByName("PropID", e.srcElement.search),
Token = getParameterByName("Token", e.srcElement.search),
TrackingNumber = getParameterByName("TrackingNumber", e.srcElement.search);
$.post("Valuation", { PropID: PropID, Token: Token, TrackingNumber: TrackingNumber}, function (taskId) {
// Init monitors
$("#dialog-modal").append($("<p id='" + taskId + "'/>"));
updateMonitor(taskId, "Started");
// Periodically update Modal
var intervalId = setInterval(function () {
$.post("Progress", { id: taskId }, function (progress) {
if (progress < 50) {
updateMonitor(taskId, "Building File");
} else if (progress == 50) {
updateMonitor(taskId, "Uploading File to FormMobi");
} else if (progress >= 100) {
clearInterval(intervalId);
updateMonitor(taskId, "Complete");
window.location.href = "downloadcomplete";
}
});
}, 100);
});
});
e.srcElement的工作原理示例:
在chrome中测试并使用inspect元素时,我会发现以下行返回:
代码行:
PropID = getParameterByName(“PropID”,e.srcElement.search)
返回结果:
搜索: “PROPID = 77301&安培;令牌= 74d30c0e-b4ab-4164-9dfd-f35fd7091cdc&安培; TrackingNumber = 367”
所以我可以获得所需的PropID结果。
还有其他一些原因让我返回所需的值吗?要么 如何让e.srcElement在fireFox中工作?
答案 0 :(得分:22)
只需调用e.target
即可。而不是e.srcElement
[仅适用于IE]
答案 1 :(得分:7)
function getTarget(obj) {
var targ;
var e=obj;
if (e.target) targ = e.target;
else if (e.srcElement) targ = e.srcElement;
if (targ.nodeType == 3) // defeat Safari bug
targ = targ.parentNode;
return targ;
}
如果您传递了目标,将返回所有浏览器的目标
答案 2 :(得分:2)
简单如
var val= (e.srcElement||e.target).value;
console.log(val);