为什么这个toggler函数在Jquery 1.8.3中不起作用(但在1.8.2中有效)

时间:2013-01-03 14:48:25

标签: jquery

我在加载Jquery 1.8.2时没有问题的网站上有这个脚本(和HTML) - 但是另一个插件需要1.8.3版 - 现在该功能不再起作用了。我怀疑它与代码的.parent和.children部分有关(?),但我不确定。谁能告诉我如何让这个脚本使用1.8.3或更高版本?

HTML:

<div class='toggle_parent'>

  <div class='toggled_content' style='display:none;'>
      My Content
  </div>
    <div class='toggleHolder'>
    <span class='toggler'>Open</span>
    <span class='toggler' style='display:none;'>Close</span>
  </div>
</div>

SCRIPT:

$(document).ready(function(){

    $('.toggler').live('click',function(){
      $(this).parent().children().toggle();  //swaps the display:none between the two spans
      $(this).parent().parent().find('.toggled_content').slideToggle();  //swap the display of the main content with slide action

  });

});

JS小提琴:http://jsfiddle.net/UezUj/363/

(我需要脚本只在周围的div中查找toogle div,并且不能使用#id来定位div的 - 因为我会有很多切换到彼此旁边并且不希望它们全部到同时打开。希望有意义......)

2 个答案:

答案 0 :(得分:0)

以下是更新:

  1. 问题中的代码段没有任何问题(正如众人指出的那样!)

  2. 我的问题是由加载自定义版本的Jquery的插件引起的,该版本没有此脚本的所有必要功能。

  3. 一旦整理好了 - 一切都有效。感谢TylerCrompton,该片段甚至有所改进,所以它并非一无所获! 多谢你们。

答案 1 :(得分:0)

尝试替换

$('.toggler').live('click', function(){ /*content*/ };

$('.toggler').click(function(){ /*content*/ };

小提琴:http://jsfiddle.net/bkqsS/(尝试使用jQuery 1.9.0)。