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

Have to click twice for toggle in 1 function; Can click once in another

本文关键字:另一个 一次 功能 两次 1个      更新时间:2023-09-26

此函数需要点击两次才能运行:

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');
    }
  });  
});

如何使第一个工作只点击一次?

我认为,你不需要指定Object1的ID,你只需要Object2的ID,简单地像这样:

<button onclick="myFunction('some_div')">Show/hide</button>
function myFunction(ID) {
    $("#"+ID).toggle(); // or something
}

参见JSFiddle

replace

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

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

如果您将click事件处理程序添加到document ready调用中,它将立即绑定到元素,而不是在调用该函数时。这意味着它将在第一次点击而不是第二次点击时被调用,因为它需要在绑定点击处理程序之前调用初始函数。为了避免这种情况,你可以在你想要触发函数的元素上设置一个onclick,并让它充当预绑定的click处理程序。

    <div id="IDofObject" onclick="myFunction(IDofObject2)"></div>
    function myFunction(IDofObject2) {
         $('#' + IDofObject2).toggle();
    }