我需要在onclick上执行两个函数

时间:2014-02-15 17:42:56

标签: javascript jquery html getelementbyid getelementsbyclassname

当用户单击下一个按钮时,这两个函数将调用next()和fbsharing()函数。 下一次交换4个div,一次只显示一个(WORKING) fbsharing(将在div id = fbshare(FAIL)

中显示自定义共享按钮

这是我的jsfiddle:http://jsfiddle.net/U3jdm/

<div id="content" style="width:60%;  float:left; padding: 10px 10px 10px 10px;">
    <div id="ncholder">
        <div id="ncframe"></div>
        <div class="PortSwap" id="swap0"> 
        111111111111
        </div>

        <div class="PortSwap" id="swap1"> 
         2222222222
        </div>

        <div class="PortSwap" id="swap2">
         333333333
        </div>

        <div class="PortSwap" id="swap3"> 
        4444444444
        </div>
    </div>
    <div id="ncnav" style="width:83%; float:left; padding: 30px 10px 10px 10px;">
    <div style="width:30%; float:right; color:#66ce9d; font-size:18px; font-weight:bold;">
        <div style="width:30px; height:30px; float:left;"><img src="leftnav.png" alt="Previous" onClick="(function(){prev(); fbSharing();})();"/></div>
        <div style="width:30px; height:30px; float:right;"><img src="rightnav.png" alt="Next" onClick="(function(){next(); fbSharing();})();"/></div>
    </div></div>
     <div id="fbshare" style="color:#ed1a64; font-size:18px; font-weight:bold;"> </div>
</div>
<script>
 $(function () {
     "use strict";
     $('.PortSwap').hide().eq(0).addClass('active').show();
 });

 function prev() {
     var current = $('.PortSwap.active'),
         prev = current.prev('.PortSwap');
     console.log(prev.length, prev);
     if (prev.length) {
         current.hide().removeClass('active');
         prev.addClass('active').show();
     }
 }

 function next() {
     var current = $('.PortSwap.active'),
         next = current.next('.PortSwap');
     if (next.length) {
         current.hide().removeClass('active');
         next.addClass('active').show();
     }
 }
function fbSharing() {
var test = document.getElementByClassName("PortSwap active");
var share;
var testid = test.id;
    if (testid = 'swap0') {
        share ="1111111";
    }
    else if (test.ID = 'swap1') {
        share ="2222";
    }
    else if (test.ID = "swap2") {
        share ="33333";
    }
    else if (test.ID = "swap3") {
        share ="44444";
    }
    document.getElementById("fbshare").innerHTML=share;
}
</script>

嗨,谢谢你发现我在getelementsclassname上的错误。 对于正在执行的两个函数的工作演示,这里是: http://jsfiddle.net/79B8z/1/

2 个答案:

答案 0 :(得分:1)

我发现 2个错误

<强> 1 即可。没有名为getElementByClassName的{​​{1}}函数( s ) 的 2 即可。 getElementsByClassName返回您需要第一个HTMLElement的集合,因此您可能必须使用数组索引表示法。

最后,

看起来应该是,

document.getElementsByClassName

JS Fiddle

答案 1 :(得分:0)

要启动两个功能,只需使用

onclick="next(), fbsharing()"

我认为这就是你的意思..