2012-04-11 96 views
1

我正在嘗試使用jQuery切換在兩個函數之間切換。迄今爲止的結果是不完整的。以下是試用場景的完整代碼。jQuery功能之間切換 - 執行零,一,二,三...次

<html> 
<head> 
    <script type="text/javascript" src="../js/jquery.js"></script> 
    <script> 
    $(document).ready(function(){ 
    $('#id').on('click',function(event){ 
     $(this).toggle(
      function(){console.log('Hide');}, 
      function(){console.log('Show');} 
     ); 
    }); 
    }); 
    </script> 
</head> 

<body> 
    <div id="id">Hello</div> 
</body> 
</html> 

因此,當我第一次點擊「Hello」時,日誌中沒有任何內容出現。

[Nothing] 

在第二次點擊,我得到:

Hide 

在第三,它增加了:

Show 
Hide 

在第四,它增加了:

Hide 
Show 
Hide 

第五,它增加了:

Show 
Hide 
Show 
Hide 

我相信你可以看到模式:)爲什麼這樣做?我用.stop(true)進行了實驗,但無濟於事。

謝謝。

回答

4

toggle()單擊時執行,因此您不需要事件包裝器click

$('#id').toggle(
     function(){console.log('Hide');}, 
     function(){console.log('Show');} 
    ); 

您當前的代碼將toggle()click事件觸發第一次被點擊,這就是爲什麼你沒有得到任何東西你第一次點擊的元素。

+0

美麗!點擊是在開始使用切換之前嘗試不同的東西的遺產。除去點擊包裝解決了這個問題,只要我想要的點擊發生在兩個切換函數內(這可能涉及一點點重複)。或者我想我可以使用.toggle(...)。('click',...),不是嗎? – Nick 2012-04-11 02:15:38

+0

@Nick很開心,悉尼開發者! – alex 2012-04-11 02:16:30

+0

@Nick你可以像這樣鏈接'toggle()'和'on(),每次點擊都會觸發'on()'。 – alex 2012-04-11 02:23:40