0

我在编写一些 jQuery 代码时遇到了一些困难。我想要做的是通过像这样的事件处理程序传递多种方法 $(foo).click(methodOne , methodTwo); 第一种方法的目的是淡出当前视图然后将其隐藏,第二种方法的目的是显示备用视图。无论出于何种原因,click 只接受一种方法,我非常肯定它至少可以接受 2 种方法。这是代码:

$(document).ready(function(){
    $("#slide1").hide();
    $(".items img").click(function() {

        if ($(this).hasClass("active")) { return; }

        $(".items img").removeClass("active");
        $(this).addClass("active");

        $(".slide1").click(fadeOut,showSlide1);
        $(".slide0").click(fadeOut,showSlide0);
    }); 

});


function fadeOut() {
$(this).stop().fadeTo("medium", 0);
$(this).hide();
}

//Slide 0 has been clicked
function showSlide0(){
$("#slide0").stop().fadeTo("medium", 1);
}                                   

//Slide 1 has been clicked
function showSlide1(){
$("#slide1").stop().fadeTo("medium", 1);
}
4

2 回答 2

1

No - .click() only accept one function. (And I'm pretty sure)

But we can work on what you're trying to do.

your code is simplified below,

$(".slide1,.slide0").click(fadeOut);

function fadeOut() {
$(this).stop()
       .fadeTo("medium", 0)
       .hide()
       .fadeTo("medium", 1);

}

Which gives me a scratch in the head. what are you trying yo achieve??

or maybe your looking for .toggle() ?

于 2010-10-08T04:44:36.937 回答
0

您遇到的一个问题是,fadeOut已经是一个 jQuery 函数。结果,您将在这里遇到冲突。

如果您尝试进行切换,则需要执行以下操作 - 这将在显示幻灯片和淡化它们之间切换(但是,因为它们并不总是显示,这可能会出现问题):

$("#slide0, #slide1").toggle(showSlide, fade);

但是......我认为你想要做的更像是这样的:

<script>
$(".showSlides").click(showSlides);

$('#slide0, #slide1').hide();
$("#slide0, #slide1").click(fade);

function showSlides() {
    $('#slide0, #slide1').fadeTo("medium", 1);
    $(this).fadeTo('medium', 0);
}

function fade() {
    $(this).stop().fadeTo("medium", 0);
}​
</script>

<div class="showSlides">Show the Slides (Click Me)</div>
<div id="slide0">Slide 0 (Click Me)</div>
<div id="slide1">Slide 1 (Click Me)</div>​

当您单击幻灯片时,这将切换显示和隐藏幻灯片。你可以在这里看到结果:http: //jsfiddle.net/M6G5S/

于 2010-10-08T05:12:04.883 回答