在asp.net中使用jquery获取选定的元素偏移值

时间:2014-07-28 06:48:55

标签: jquery asp.net

我使用jquery在asp中创建了动态文本框控件,如下所示

<asp:Button ID="btnAddField" runat="server" Text="Add Field" OnClientClick="createInput(); return false;" />

Jquery函数

function createInput() {
        var $input = $('<div class="dragMe" style="position: absolute; padding-top:6px; top:30px; left:100px; zIndex: 5"> <input type="text" class="customText" value="drag me.." style="outline: 0;"/><div style="visibility:hidden"><a class="remove_block" href="#">Remove</a></div></div>');

        $input.appendTo($("[id$=pnlCertificate]"));
        $(".dragMe").draggable();
        $(".dragMe").mouseenter(function () {
            $(this).css("background", "#c0c0c0");
            $('.dragMe a').css("visibility", "visible");
        }).mouseleave(function () {
            $(this).css("background", "none");
            $('.dragMe a').css("visibility", "hidden");
        });
        $('.remove_block').on('click', function (events) {
            events.preventDefault();
            $(this).parents('div').eq(1).remove();
        });
        $('.dragMe').on('click', function (events) {
            getOffset();
        });
    }

    function getOffset() {
        var offset = $('.dragMe :input').offset();
        events.stopPropagation();
        $("[id$=txtBox1]").val(offset.top);
        $("[id$=txtBox2]").val(offset.left);
    }

我希望动态文本框的偏移值显示在以下文本框

<asp:TextBox ID="txtBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="txtBox2" runat="server"></asp:TextBox>

1 个答案:

答案 0 :(得分:0)

根据您设置的ClientIDMode,这应该完成工作(只需要更改getOffset函数)。它会将文本框控件的客户端ID插入JavaScript。

function getOffset() {
    var offset = $('.dragMe :input').offset();
    events.stopPropagation();
    $("$<%= txtBox1.ClientID %>").val(offset.top);
    $("$<%= txtBox2.ClientID %>").val(offset.left);
}