2011-08-16 61 views
0

我正在嘗試調用事件中的函數。但它不起作用。 被點擊的div應該淡入,其他div應該有50%的不透明度。如何在事件中調用函數?

我的Jquery:

function clickopa (element) { 
    return $(element).fadeIn(), 
    $(element).closest('div).fadeTo(0, 0.5); 
} 

$('.blueDiv').fadeTo(0, 0.5); 
$('.blackDiv').fadeTo(0, 0.5); 
$('.blackDiv').click (function(e) { 
    clickopa(this); 
}); 

我的HTML:

<div class="redDiv" style="background:red;width:20px;height:20px;"> </div> 
<div class="blueDiv" style="background:blue;width:20px;height:20px;"> </div> 
<div class="blackDiv" style="background:black;width:20px;height:20px;"> </div> 
+1

好的。有什麼問題? 「它不工作」是什麼意思?這不是一個錯誤描述。你知道你有一個'''不匹配(看看語法高亮)嗎? –

+0

也請停止在每個問題標題的開頭寫上「jQuery」;除了增加不必要的混亂之外,它是毫無意義的。 –

回答

1
function clickopa() { 
    $(this).css("opacity", 1); //Just use this inside the function instead of wrapping it inside of another function 
          //Since you aren't hiding the divs, just set the opacity to 1 instead of fading in. 
    $("div").not(this).css("opacity", 0.5); //Don't use fadeTo if you aren't animating 
} 

$('.blueDiv').css("opacity", 0.5); 
$('.blackDiv').css("opacity", 0.5).click (clickopa); //Chain the function calls. 
+0

它不起作用:http://jsfiddle.net/mtYtW/94/黑色的div沒有獲得100%的不透明度onclick –

+0

我剛剛編輯它,因爲如果div已經顯示,fadeIn()不起作用。 – Dennis

+0

它很接近。 [這是工作解決方案。](http://jsfiddle.net/PRZ5J/)'fadeIn'將不起作用,因爲它已經褪色了!只是不完全不透明。 –

-1

似乎非常少點使用的功能,因爲它是兩行代碼,如果我正確地理解你的問題只是做了如下:

$('div').click(function() { 
    $('div').fadeTo(0,0.5); 
    $(this).fadeTo(0,1.0); 
}); 

希望這有助於;如果不是,請評論一下。

+0

如果在文檔中點擊任何**'div'時想要影響**文檔中的每個**'div',那就太好了。這似乎不會是強大/可取的解決方案。 –

+0

@Tomalak,也許他應該提供更多的代碼。假定他有更多的代碼比提供的代碼對我來說是不公平的。 – udjamaflip

+0

不相關。 OP說:「點擊的div應該淡入,其他div應該有50%的不透明度」,而你的代碼並不是這樣做的。他的例子只涉及點擊一個特定的'div',但是你的代碼涉及* all *'div's。 –

相關問題