必须单击两次才能在1功能中切换;可以在另一个中单击一次

时间:2014-06-20 19:33:57

标签: javascript jquery toggle

需要单击此功能两次才能运行:

function myFunction(IDofObject,IDofObject2) {
   $('#' + IDofObject).click(function(){
   $('#' + IDofObject2).toggle();
})};

此功能只需点击一次:

$(document).ready(function(){
  $('#show-hide2').click(function(){
    $('#content_0_contentmain_3_panelActiveCampaigns').toggle();
    if ($('#show-hide2').text() == 'Hide') {
        $('#show-hide2').text('Show');
    }
    else {
        $('#show-hide2').text('Hide');
    }
  });  
});

如何通过仅点击一次才能使第一个工作?

3 个答案:

答案 0 :(得分:0)

如果将click事件处理程序添加到文档就绪调用中,它将立即绑定到元素,而不是调用函数时。这意味着它将在第一次单击和第二次单击时调用,因为它需要在绑定单击处理程序之前调用初始函数。为了避免这种情况,您可以在要触发函数的元素上进行onclick,并将其作为预绑定的单击处理程序。

    <div id="IDofObject" onclick="myFunction(IDofObject2)"></div>

    function myFunction(IDofObject2) {
         $('#' + IDofObject2).toggle();
    }

答案 1 :(得分:0)

我认为,您不需要指定Object1的ID,您只需要Object2的ID,就像这样:

<button onclick="myFunction('some_div')">Show/hide</button>

function myFunction(ID) {
    $("#"+ID).toggle(); // or something
}

See on JSFiddle

答案 2 :(得分:0)

替换

function myFunction(IDofObject,IDofObject2) {
     $('#' + IDofObject).click(function(){
     $('#' + IDofObject2).toggle();
})};

通过

function myFunction(IDofObject,IDofObject2) {
     $('#' + IDofObject2).toggle();
};