将ID传递给click事件

时间:2012-07-08 20:31:18

标签: javascript asp.net jquery

我在asp.net转发器中有以下输入

 <div class="detailsItem">
    <input type="button" class="saveCommand" value="Save"/>
 </div>

然后在我的文档中。我已经绑​​定了一个单击函数

   <script type="text/javascript">

    $(document).ready(function () {

        $('.saveCommand').live('click', function () {
            var cur = $(this);
            saveItem(cur.closest('div.detailsItem'));
        });

    });

当我绑定我的转发器时,我希望能够在click功能的呼叫中包含一个ID。类似于:

<input type="button" onclikc="save(this,<%#((CustomViewItem)Container.DataItem).Id%>" value="Save"/>

有关如何组合这两种绑定方式的想法吗?

4 个答案:

答案 0 :(得分:3)

您可以使用新的data-*属性

<input type="button" data-id="<%#((CustomViewItem)Container.DataItem).Id%>" value="Save"/>

在事件处理程序中,您可以使用

访问它
cur.data("id")

答案 1 :(得分:3)

我建议您使用data attribute

<!--
    <div class="detailsItem" data-id="<%#((CustomViewItem)Container.DataItem).Id%>">
-->
<div class="detailsItem" data-id="YourIdHere">
    <input type="button" class="saveCommand" value="Save"/>
</div>

<script type="text/javascript">
    $(document).ready(function () {
        $('.saveCommand').on('click', function () {
            var cur = $(this);
            var detailsItem = cur.closest('div.detailsItem');
            alert(detailsItem.data("id"));
            saveItem(detailsItem);
        });
    });
</script>

有关jQuery中data()方法的更多信息:http://docs.jquery.com/Data

答案 2 :(得分:0)

您可以将ID传递给Repeater项目模板中的保存功能。

<itemTemplate>
    <input type='button' onclick='save(<%# Eval("Id")); %>' value='Save' />
</itemTemplate>

答案 3 :(得分:0)

试试这个

<ItemTemplate>
<div class="detailsItem">
<input type="button" class="saveCommand" onclick='save(<%# Eval("Id") %>);' value="Save"/>
</div>
</ItemTemplate>