user3653474
user3653474

Reputation: 3854

Trigger click event to dynamically added link on href using jquery

I am dynamically creating the link on anchor tag through jquery, I want to trigger click event as soon as link gets attached to href, but in my case click event didn't get triggered.

JQuery:

$("#refShare").click(function(e){
    jQuery.ajax({
        url: base_url+"create-refer",
        cache : false,
        dataType: 'json',
        data: { email:email },  
        type:'post',
        success:function(response){
            jQuery('li#refShare a:first').attr("href", 'https://www.xyzLink.com/'+response.link);
            jQuery('li#refShare a:first').attr("target", 'blank');
            jQuery('li#refShare a:first').click();
       }); 
});

HTML:

<ul>
<li id="refShare">
<a href="" id="share-facebook">
<i class="fa fa-facebook fa-2x" aria-hidden="true"></i>
</a>
</li>
<li>
    ....
</li>
    .....
</ul>

Upvotes: 0

Views: 2605

Answers (4)

Desi boys
Desi boys

Reputation: 29

You need to choose the right element which can be clickable and your goal to redirect to somewhere else automatically(where human intervention does not require) can be achieved by using 'trigger' function.

you can do :

$('#share-facebook').trigger('click');

For further details/documentation about jquery 'trigger' function, you can check this url: .trigger()

Upvotes: 0

gaurav sharma
gaurav sharma

Reputation: 544

Try this

jQuery(document).ready(function(){


    	setTimeout(function(){ 


    		alert("Hello"); 

    		jQuery('#Link_xyz').attr("href", 'https://github.com/gauravin213');
	        jQuery('#Link_xyz').attr("target", 'blank');
	        jQuery('#Link_xyz').click();



    	}, 3000);


    	jQuery(document).on('click', '#Link_xyz', function(){  

    		var target = jQuery(this);

    		var url = target.attr('href'); alert("click: "+url); 

    		//window.open(url, '_blank');

            window.location.href = url;
    	});

    	

    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
	<a id="Link_xyz" href="">Link</a>
</div>

Upvotes: 0

Kelsnare
Kelsnare

Reputation: 705

Try trigger

$("#refShare").trigger("click")

Upvotes: 1

Balamurugan A.
Balamurugan A.

Reputation: 57

Do you want an auto click or manual click?

If you want an auto => jQuery('li#refShare a:first').trigger( "click" ); Otherwise manually means assign one id to this href and make it click. jQuery('li#refShare a:first').attr("id", 'some_id');

outside Ajax

  jQuery('#some_id').on('click','#some_id', function() {
    //do it your stuff...
 });

Upvotes: 0

Related Questions