2013-08-13 3 views
5

Jquery Переключение две функции не работают в JQuery 1.10.1, но работать на Jquery 1.8.3Jquery Переключение две функции не работают в 1.10.1

HTML

<p>For example, consider the HTML:</p> 
       <div id="target"> 
        Click here 
       </div> 

Jquery

$('#target').toggle(function() { 
    alert('First handler for .toggle() called.'); 
}, function() { 
    alert('Second handler for .toggle() called.'); 
}); 

и рассчитано на here

ответ

8

Чувак это не работает в JQuery 1.10.1

Еще есть другой способ сделать это ...

$(function() { 
    function first() { 
     //Code for first time click goes here 
     $(this).one("click", second); 
    } 
    function second() { 
     //Code for second time click goes here 
     $(this).one("click", first); 
    } 
    $("#target").one("click", first); 
}); 
5

Этот формат был removed in version 1.9, так что вы не можете использовать его, - если вы хотите, эта логика может быть реализована вручную или вы можете использовать migration plugin

включить миграционную плагин, после включения библиотеки JQuery добавить

<script src="http://code.jquery.com/jquery-migrate-1.2.1.js"></script> 
+0

любая другая функция для использования –

6

DEMO

DEMO jQuery 2.x (edge)

использовать этот плагин clickToggle как toggle функция удалена из версии 1.9

(function ($) { 
    $.fn.clickToggle = function (func1, func2) { 
     var funcs = [func1, func2]; 
     this.data('toggleclicked', 0); 
     this.click(function() { 
      var data = $(this).data(); 
      var tc = data.toggleclicked; 
      $.proxy(funcs[tc], this)(); 
      data.toggleclicked = (tc + 1) % 2; 
     }); 
     return this; 
    }; 
}(jQuery)); 
$('#target').clickToggle(function() { 
    alert('First handler for .toggle() called.'); 
}, function() { 
    alert('Second handler for .toggle() called.'); 
}); 
0

Он был удален в JQuery 1.9:

Это "щелкните элемент для выполнения определенных функций" подписи .toggle(). Его не следует путать с «изменением видимости элемента элемента» .toggle(), который не устарел. Бывший представитель удаляется, чтобы уменьшить путаницу и улучшить потенциал для модульности в библиотеке. Плагин jQuery Migrate можно использовать для восстановления функциональности .

Полное руководство по обновлению: http://jquery.com/upgrade-guide/1.9/

7

jQuery.toggle устарела начиная с версии 1.8 и удаляется через некоторое время. Вы можете написать свою собственную реализацию вместо:

function handler1() { 
    alert("first handler for .toggle() called."); 
    $(this).one("click", handler2); 
} 
function handler2() { 
    alert("second handler for .toggle() called."); 
    $(this).one("click", handler1); 
} 
$("#target").one("click", handler1); 

Demo

0

Вот общий метод, с множеством функций для переключения:

var toggleFunctions = [ 
    function() { /* do something */}, 
    function() { /* do something else */}, 
    ... 
    function() { /* do some other stuff*/} 
]; 

$("#target").on("click", function(){ 
    // returns first function from array 
    var currentFunction = toggleFunctions.shift(); 
    // executes the function 
    currentFunction(); 
    // pushes current function to the back 
    toggleFunctions [] = currentFunction; 
}); 
0

переключатель не работает для меня в JQuery так и с помощью StackOverflow моя альтернатива

<a href="#" id="thiclik"> Click Me To Change</a> 
 
\t \t 
 
\t \t <div id="clickevent"> 
 
\t \t </div>
и вот реализация или вы можете сказать, что альтернатива функции переключения

$('#thiclik').click(function() 
 
{ 
 
//toggle alternative 
 

 
\t function handler1() { 
 
\t \t //alert("first handler for .toggle() called."); 
 
\t \t $("#clickevent").text("Yes"); 
 
\t \t $('#thiclik').one("click", handler2); 
 
\t } 
 
\t function handler2() { 
 
\t // \t alert("second handler for .toggle() called."); 
 
\t \t $("#clickevent").text("No"); 
 
\t \t $('#thiclik').one("click", handler1); 
 
\t } 
 
\t $("#thiclik").one("click", handler1); 
 
});
работает для меня, но с небольшой проблемой, когда я нажимаю первый раз на жми меня это не работает, а на второй и третий раз, он отлично работает.

Смежные вопросы