要做到这一点,我写了一个风格css "shareleft"
& "shareright"
我使用jQuery代码来更改图标样式
$(".share").click(function () {
$(".share > ul").slideToggle();
$(".share").toggleClass("shareleft shareright");
})
但页面上有很多图标
点击其中一个,切换所有图标
但我只想更改图标"click on"
答案 0 :(得分:4)
jQuery点击处理程序实际上为您提供了确切的元素(请参阅http://api.jquery.com/on/和http://api.jquery.com/click/)。您可以使用e.target
或this
来获取点击的元素:
$(".share").click(function (e) {
var $el = $(this); // Could also use $(e.target);
$el.children("ul").slideToggle();
$el.toggleClass("shareleft shareright");
})
答案 1 :(得分:0)
这是因为您函数中的选择器正在收集ul
元素的所有元素.share
以及类.share
的所有元素。
在你的功能中你有:
$(".share > ul").slideToggle();
$(".share").toggleClass("shareleft shareright");
$(".share > ul")
正在选择ul
元素的所有.share
,而$(".share")
正在选择应用了.share
类的所有元素。< / p>
使用关键字this
来引用已点击的元素。
$(".share").click(function(e) {
var $this - $(this);
$this.children("ul").slideToggle();
$this.toggleClass("shareleft shareright");
});
如果您想知道为什么在变量名称的开头有$
,因为jQuery由$
表示,并按惯例将$
放在开头变量名称告诉我们这个变量是一个jQuery对象。