这可能是一个简单的答案,但我还没弄清楚如何做到这一点。 我有一个javascript函数,它接受鼠标位置并将其传递给asmx页面,以便它可以处理它并将x和y转换为纬度/经度。但我确实需要鼠标位置的准确性。由于某种原因,当Web服务到达它时,它被截断到0小数位,我得到49.0,105.0。我需要像9.34536这样的确切位置。 104.345367。
我已经尝试toPrecision()
,但如果我这样做,javascript甚至都不会执行
someMethod((e.pageX - posX).toPrecision(15), (e.pageY - posY).toPrecision(15));
以下是我正在使用的代码
<script>
$(document).ready(function (e) {
$(".someElement").hover(function (e) {
var posX = $(this).position().left;
var posY = $(this).position().top;
someMethod((e.pageX - posX), (e.pageY - posY));
});
})
function someMethod(xToUse, yToUse) {
$.ajax({
url: "aWebServiceURL.asmx/someMethod",
type: 'POST',
data: "x=" + xToUse + "&y=" + yToUse,
dataType: "json",
async: true,
success: function iGotData(response, data) {
var resultingJSON = JSON.stringify(response);
$('#<%= aLabelOnTheScreen.ClientID %>').text(resultingJSON);
},
error: function (xhr, status, errorThrown) {
alert("Sorry, there was a problem!");
console.log("Error: " + errorThrown);
console.log("Status: " + status);
console.log(xhr);
},
// code to run regardless of success or failure
complete: function (xhr, status) {
// alert("The request is complete!");
}
});
};
</script>
在C#中,方法定义是:
public void someMethod(float x, float y)
{
}
更新:事实证明,我只是在Safari和Chrome中遭到截断。 Firefox和IE不是。