这个JavaScript函数单独工作,但不与其他JavaScript函数

问题描述:

我有这个JavaScript:这个JavaScript函数单独工作,但不与其他JavaScript函数

<script type="text/javascript"> 
$(document).ready(function($) { 
     $('#target-share ul li').click(function() { 
      $('input#shareto').val($(this).data('val')); 
     }); 
    }); 
</script> 

,它确实可以作为我的预期。但是当我添加此另一个JavaScript做下拉动画,即JavaScript的不工作了:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#select-shareto a").click(function() { 
     var newClass = $(this).find("span").attr('class'); 
     var newText = $(this).find("span").text(); 
     $("#select-shareto a").removeClass("selected"); 
     $(this).addClass("selected"); 
     $("a#to-chosen span").removeClass().addClass(newClass).text(newText); 
     $("a#to-chosen").toggleClass("opened"); 
     $('#select-shareto').slideToggle('fast'); 
     return false; 
    }); 

    $('a#to-chosen').click(function() { 
     $(this).toggleClass("opened"); 
     $('#select-shareto').slideToggle('fast', function() { 
      // Animation complete. 
     }); 
    }); 
}); 
</script> 

的JavaScript的实际影响这个HTML代码:

<div id="target-share"> 
<a href="#" title="" id="to-chosen" class="default"><span class="to-admin">Admin</span></a> 
<ul id="select-shareto"> 
<li data-val="0-1"> 
<a href="#" title="" class="selected"><span class="to-Finance">Finance</span></a> 
</li> 
<li data-val="1-1"> 
<a href="#" title=""><span class="to-admin-private">Admin Private</span></a> 
</li> 
<li data-val="1-0"> 
<a href="#" title=""><span class="to-ceo">CEO</span></a> 
</li> 
<li data-val="0-0"> 
<a href="#" title=""><span class="to-ceo-private">CEO Private</span></a> 
</li>          
</ul> 
<input id="shareto" type="text" value="0-1" name="shareto"> 
</div><!-- #target-share --> 

任何想法如何使这些2 JavaScript并行工作?谢谢。

+0

他们单独工作,他们更愿意通过自己。 – kakridge 2012-07-27 18:23:39

+1

Javascript控制台中是否有任何内容?也许你错误地放置了一个支架 – millimoose 2012-07-27 18:23:53

+0

为什么你在第一个函数中将“$”作为参数传递给“ready”事件? – 2012-07-27 18:28:37

$("#select-shareto a").click(function() { 
    ... 
    return false; 
}); 

在此,你停止了此事件的进一步传播 - 此click事件的其他处理程序不会被调用了。相反,使用这样的:

$("#select-shareto a").click(function (e) { 
    e.preventDefault(); 
    ... 
}); 

Demo at jsfiddle.net

+0

它工作!多谢兄弟!!!我必须再等3分钟才能切换你的答案......伟大的工作,兄弟!再次感谢... – 2012-07-27 18:36:18

+0

好的电话Bergi。 – kakridge 2012-07-27 18:45:23

我假设你想插入代码中的注释动画完全是如果是这样,你只需要把代码:$('#target-share ul li').click(function() { $('input#shareto').val($(this).data('val'));});

您的代码已经被包裹在一个$(document).ready所以你不需要另一个。