如何根据id获取所有特定范围并调用click事件?

时间:2015-04-17 11:08:19

标签: jquery asp.net

目前我正在做如下

<script type="text/javascript">
$(document).ready(function () {
debugger;
$('#Draft').live('click', function () {
alert("I am Draft Here");
});

$('#Live').live('click', function () {
alert("I am live Here");
});

$('#Completed').live('click', function () {
alert("I am completed Here");
});
});
</script>

我正在获取每个元素的id并基于该click事件的调用警报。

有什么方法可以获取所有span元素,比如哪个样式属性就像style="color:

下面就像我在页面上的span元素

<span style="color:#F3660E;" id="Draft">Draft: (2138)</span>

我是jquery的新手,请在此建议

3 个答案:

答案 0 :(得分:0)

你可以给他们所有的课程,例如:

<span class="thingy" id="Draft">Draft: (2138)</span>

(您可以删除id,除非您打算使用它。)

然后:

$(document.body).on("click", ".thingy", function() {
    // `this` will be the span element
});

示例:

$(document.body).on("click", ".thingy", function() {
  $("<p>").html("You clicked " + this.id).appendTo(document.body);
});
.thingy {
  color: #F3660E;
  border: 1px solid black;
}
<div>
  <span class="thingy" id="Draft">Draft: (2138)</span>
  <span class="thingy" id="Live">Live: (1234)</span>
  <span class="thingy" id="Completed">Completed: (4321)</span>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


请注意,在上面我使用的是on,而不是livelive在几个版本之前已被弃用,并删除了几个版本。 on是如何使用任何最新版本的jQuery执行此操作的。

答案 1 :(得分:0)

您可以为所有元素添加公共类。

<span class="myClass" id="Draft">Draft: (2138)</span>

然后您可以绑定事件使用类.myClass

$('.myClass').on('click', function () {
    //Here this refers to span, element which invoked the event
    alert("I am " + this.id + " Here"); 
});

DEMO

答案 2 :(得分:0)

您也可以使用点击。有关点击和查看Why use jQuery on() instead of click()

中的答案之间差异的简短说明

对于你的例子我可能只是使用//因为它更短:)

$('.someClass').click(function(){
alert("I am someClass");
});