1

我在 html 中有这个:

<ul class="ei-slider-arrows">
  <li id="arrowLeft" ><img src='images/close.png'/></li>
  <li id="arrowRight" ><img src='images/close.png'/></li>
</ul>

我正在尝试在我的两个 li“箭头”上添加点击功能,但我无法选择它们。我试过这个:

this.$arrows     = this.$el.find('ul.ei-slider-arrows');
this.$arrowLR    = this.$arrows.children('li');
this.$arrowRight = this.$arrowLR.getElementById("arrowRight");

我可以添加一个功能,this.$arrowLR但我无法选择arrowRight。在这里我尝试了getElementById,但我也尝试了get(0)and get(1)

任何人都知道为什么它不起作用?

如果我这样做console.log(this.$arrowRight),它只会在两种情况下(和)都显示[]在控制台中。get()getElementById("arrowRight")

4

4 回答 4

2

如果您想通过 id 获取它们,请使用以下代码段:

var arrowsBoth = $('#arrowLeft, #arrowRight');

或者,如果您想单独访问它们:

var arrowLeft = $('#arrowLeft');
var arrowRight = $('#arrowLeft');

你也可以像这样得到它们(另外,这可能会返回比期望更多的元素):

var arrows = $('ul.ei-slider-arrows li');
于 2012-07-30T16:34:22.433 回答
2

只需按 ID 选择元素并将事件处理程序绑定到它

使用 jQuery

$('#arrowLeft').click(function(){

})

$('#arrowRight').click(function(){

})
于 2012-07-30T16:38:08.997 回答
0

我会去:

$("#leftArrow").click(hazaa());
$("#rightArrow").click(hazaa());

function hazaa(){ }

如果您想做一些稍微不同的事情,您也可以传递一个参数,具体取决于单击的箭头。

$("#leftArrow").click(hazaa("left"));
$("#rightArrow").click(hazaa("right"));

function hazaa(direction){ alert(direction); }
于 2012-07-30T16:34:17.393 回答
0

$("#arrowRight")并且$("#arrowLeft")在 jquery 中应该得到左右箭头。然后,您可以使用on()delegate()click()来分配处理程序。您也可以只做document.getElementById("arrowLeft")document.getElementById("arrowRight")做同样的选择。上述问题之一是,this.$arrowLR.getElementById("arrowRight");您试图在包含 dom 元素列表的 jquery 对象上使用 javascript 函数。

于 2012-07-30T16:38:31.010 回答