【问题标题】:Trigger click event to dynamically added link on href using jquery使用jquery触发点击事件以在href上动态添加链接
【发布时间】:2020-06-16 22:51:10
【问题描述】:

我正在通过 jquery 在锚标记上动态创建链接,我想在链接附加到 href 后立即触发点击事件,但在我的情况下,点击事件没有被触发。

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>

【问题讨论】:

  • 试过了,还是不行
  • 对不起,我的第一条评论有误导性(我删除了它)。你到达成功回调了吗?可以console.log(response) 吗?
  • 是的,我正在获取链接并且它正在附加,但是一旦附加链接就不会触发点击事件
  • 不设置目标(为空白)是否有效?由于您的浏览器的弹出窗口拦截器。
  • 或者你可以做 window.open('xyzLink.com/'+response.link, '_blank');

标签: javascript jquery html ajax href


【解决方案1】:

试试trigger

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

【讨论】:

  • 谢谢,但它不起作用我试过这个 window.open('xyzLink.com/'+response.link, '_blank');它正在工作
  • 我希望您尝试使用正确的选择器$('li#refShare a:first').trigger("click");
  • This answer 可能会解释一下。
  • @Kelsnare click() 不触发是不正确的。在您的链接文档中有这样的:Description: Bind an event handler to the "click" JavaScript event, or trigger that event on an element.
【解决方案2】:

您想要自动点击还是手动点击?

如果你想要一个自动 => jQuery('li#refShare a:first').trigger("click"); 否则手动意味着为这个 href 分配一个 id 并使其点击。 jQuery('li#refShare a:first').attr("id", 'some_id');

在阿贾克斯之外

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

【讨论】:

  • 我想自动点击我试过你的代码,但它不起作用
  • 你最好分析一下 jQuery.trigger();这会对你有所帮助。
【解决方案3】:

试试这个

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>

【讨论】:

    【解决方案4】:

    您需要选择正确的可点击元素,并且可以通过使用“触发”功能实现自动重定向到其他地方(不需要人工干预)的目标。

    你可以这样做:

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

    有关 jquery 'trigger' 功能的更多详细信息/文档,您可以查看此网址:.trigger()

    【讨论】:

    • 谢谢,但它不起作用我试过这个 window.open('xyzLink.com/'+response.link, '_blank');它正在工作
    • 请在您的答案中添加一些解释,以便其他人学习
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    • 2014-02-15
    相关资源
    最近更新 更多