【发布时间】:2015-01-23 16:07:05
【问题描述】:
以下代码对.main 内部的class1 及其 (class1) 内容进行了一些更改。
$('.main').on('click','.class1',function(){
//some work with $(this)
});
另外,.main 内部还有一个div.class2,其结构与div.class1 的结构相似。
问题是:
通过单击.class1 将上述代码对 class1 发生的所有更改也应用到 class2 的最简单方法是什么?
将div.class1 克隆到div.class2 不是可行的方法,因为内容略有不同。只有上面正在执行的代码应该同时应用于class1 和class2。
重要的是上面的代码包含.closest()这样的$(this).closest('.bar')方法。
【问题讨论】:
-
在两个元素上放置一个公共类并将其放入选择器中。
-
closest 将始终只返回 1 个项目。如果您必须使用它,请尝试找到包装 class1 和 class2 的最近父级并将样式应用于子级。
-
您能否向我们展示您的 html 的确切结构,以及
closest()的位置?点击任一 div 元素时,您真正想做什么? -
@Jamiec,我真的很抱歉我不能分享整个代码。问题是是否有可能用于任何代码。添加一个通用类是个好主意,但是,它不起作用。将 $this 替换为 class1、class2 之类的操作。可能没有更简单的方法来执行此代码,然后查找这是来自 class1 还是来自 class2,然后切换到另一个类并可能再次执行整个代码。
-
你是否希望每次有人点击 class1 时你的更改也会发生在 class2 上?在这种情况下,没有人接触 class2 (或)您是否希望在分别单击两者时发生相同的更改?
标签: javascript jquery html css this