这里我有一些例子和1.case中相同的代码不工作,但在2.case工作。为什么?
所以我需要在1.case中工作,就像按钮在2.case中工作一样。
这是js代码:http://jsfiddle.net/mwsvP/8/
$(".ca_button, .ca_button1,.button").click(function () {
var t = $(this);
$par = t.parent();
$par.find(".ca_button, .ca_button1").css("background-color", "#bababa");
if ($(this).hasClass("ca_button1")) {
t.find("a").css("background-color", "#0F0");
} else if ($(this).hasClass("ca_button")) {
t.find("a").css("background-color", "#F00");
}
});
答案 0 :(得分:2)
更改您的html:
<div>PRICE - 1.case
<a href="javascript:void(0)" class="ca_button" onClick="setQuality(-100, 'price_quality', '{$lang501}/{$lang502}');">Disadvantage</a>
<a class="button">Average</a>
优势
到此:
<div>PRICE - 1.case
<div class="ca_button"><a href="javascript:void(0)" class="ca_button" onClick="setQuality(-100, 'price_quality', '{$lang501}/{$lang502}');">Disadvantage</a>
</div>
<a class="button">Average</a>
优势
答案 1 :(得分:1)
由于t.find("a")
。
在你的第一个案例中,没有a
作为具有类ca_button
或`ca_button``的元素的子元素。
在您的代码中,您为.ca_button
和.ca_button``, so the
t will be pointing to that, then in the code where you are changing the color you are looking for a
a`元素注册了点击事件,作为点击目标的子项。
此案例与案例1不符。
$(".ca_button, .ca_button1,.button").click(function () {
var t = $(this);
$par = t.parent();
$par.find(".ca_button, .ca_button1").css("background-color", "#bababa");
var t1 = t.is('a') ? t : t.find('a');
if (t.hasClass("ca_button1")) {
t1.css("background-color", "#0F0");
} else if (t.hasClass("ca_button")) {
t1.css("background-color", "#F00");
}
});
演示:Fiddle