0

我正在开发一个将发布一些数据的功能 - 图像槽 api 上标志/引脚的位置。

我在传递职位详细信息时遇到问题。

function sendOnClick() {
    function get_posx() {
        var relx = $("#image_edit").click(function(e) {
            var relX = e.pageX - this.offsetLeft;
            return relX
        });
        return relx;
    }

    jQuery.post('{% url case_image_detail_api case.pk image.pk %}', {
        'id' : '{{image.id}}',
        'image_posx' : get_posx(),
        'image_posy' : get_posx(),
    });
};

错误:NS_ERROR_XPC_BAD_CONVERT_JS:无法转换 JavaScript 参数

4

2 回答 2

0

正如上面的评论所说,sendOnClick应该是事件处理程序:

function sendOnClick(e) {
    var relX = e.pageX - this.offsetLeft;
    var relY = e.pageY - this.offsetTop;

    jQuery.post('{% url case_image_detail_api case.pk image.pk %}', {
        'id' : '{{image.id}}',
        'image_posx' : relX,
        'image_posy' : relY
    });
};

$("#image_edit").click(sendOnClick);
于 2013-01-25T13:51:26.430 回答
0

您的get_posxreturn relx,它是一个 jQuery 对象 ( $("#image_edit").click(…);)。这对于 HTTP 参数是不可序列化的,因为它包含 DOM 元素,并且 XMLHTTPRequest 会抱怨它。

如果您想在用户单击图像时发送请求,则需要将$.post调用放在事件处理程序中!

$("#image_edit").click(function sendOnClick(e) {
    var relx = e.pageX - this.offsetLeft,
        rely = e.pageY - this.offsetTop;

    jQuery.post('{% url case_image_detail_api case.pk image.pk %}', {
        'id' : '{{image.id}}',
        'image_posx' : relx,
        'image_posy' : rely
    });
});
于 2013-01-25T13:53:41.527 回答