2016-10-18 2 views
0

Требование просто на моей странице. Когда я нажимаю одну кнопку, я хочу автоматически нажать скрытую кнопку.JQuery trigger.click() на кнопках, которые не работают иногда

Это то, что я использую

(function($) { 
    $(document).on('click', '#button1', function() { 
     //code to display some divs and hide some divs 
     $('#button2').trigger('click'); 
    }); 
}) 

Он работает иногда, а иногда и кнопка не clicked.I не уверен, что это неправильно с этим. Любая помощь приветствуется.

ответ

0

Просмотреть этот код lines.It работает. Я вижу, когда вы используете IIFE, вы не передаете объект jQuery. Или попробуйте сравнить с вашими кодовыми строками.

(function($) { 
 
    
 
    $('#button1').on('click', function(){ 
 
    console.log('button1'); 
 
    }); 
 
    
 
    $('#button2').on('click', function(){ 
 
    console.log('button2'); 
 
    }) 
 
    
 
$(document).on('click', '#button1', function() { 
 
//code to display some divs and hide some divs 
 
$('#button2').trigger('click'); 
 

 
}); 
 
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id='button1'>A</button> 
 
<button id='button2'>B</button>

+0

Я не в состоянии проверить именно потому, что это не так часто видел. Можем ли мы проверить, является ли нажатие триггера успешным или нет? – user168983

+1

@ user168983 Нет, вы не можете, если вы подключили событие и затем его запустить, он всегда будет работать. –

+0

все еще сталкивается с проблемой ... еще несколько раз следующая кнопка не нажимается автоматически – user168983

-1

вы также можете сделать это

(function($) { 
 
    
 
    $('#button1').on('click', function(){ 
 
    console.log('button1 and button clicked '); 
 
    }); 
 
    
 
    $('#button2').on('click', function(){ 
 
    console.log('button2 clicked'); 
 
    }) 
 
    
 
$(document).on('click', '#button1', function() { 
 
//code to display some divs and hide some divs 
 
$('#button2').click(); 
 

 
}); 
 
})(jQuery);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<button id='button1'>clickme btn1</button> 
 
<button id='button2'>clickme btn1</button>

+0

Как отличается от других ответов – user168983

-1

Написать свой код в document.ready() только. Я не думаю, что вы должны использовать скрытый БТН

+0

, пожалуйста, уточните – user168983

-1

Вы можете попробовать это также:

$(function() { 
    $('#button1').on('click', function(){ 
     console.log('button1 clicked '); 
    }); 

    $('#button2').on('click', function(){ 
     console.log('button2 clicked'); 
    }); 

    $('#button1').click(function(){ 

     $('#button2').click(); 
    }); 

    }); 


    <body> 
    <button id='button1'>button1</button> 
    <button id='button2'>button2</button> 
    </body> 
+0

Как отличается от других ответов – user168983