jquery:内部点击不起作用

时间:2013-08-19 11:15:54

标签: jquery click live

内部点击无效 .Html JS 脚本如下。我使用Click事件,然后使用live事件进行内部元素点击,但它无法正常工作

<head runat="server">
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <a style="cursor: pointer" id="abc" target="_blank" href="http://www.google.com"></a> 
    <a style="cursor: pointer"id="myLink">Click ME -Open google on new Tab</a>
    <script type="text/javascript">

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


             $('#abc').click();

        });
    </script>
    </form>
</body>

4 个答案:

答案 0 :(得分:1)

您正在使用jquery 1.8。

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应该使用.delegate()而不是.live()。

Refer here

$(document).on('event', 'selector', function() {});取代.live()

$('selector').on('event', 'selector', function() {});取代.delegate()

$('selector').on('event', function() {});取代.bind()

但是,

你还想做什么?

$('#abc').on('click', function (event) {
     event.preventDefault();
});

如果您想检测点击多个ID,

 $('#abc, #myLink').on('click',.......

应该足够了。外部点击检测似乎没有任何用处。

答案 1 :(得分:1)

clicklive都会将事件处理程序附加到元素,因此您的代码只需在每次单击#abc时为#myLink分配一个新的点击处理程序。

OP编辑后的编辑:

我不确定您要尝试做什么,但是当您点击#abc时,您似乎想要关注#myLink的链接?你现在拥有的代码就是这样。

#myLink没有href属性,因此没有点击跟随。

如果您只想点击#myLink以关注#abc的href,但无法直接点击#abc,则可以执行以下操作:

$('#abc').on('click', function() {
    event.preventDefault();
});

$('#myLink').on('click', function() {
    var abc = $('#abc'),
        that = $(this);

    that.attr({
        "href": abc.attr('href'),
        "target": "_blank"
    }).click();
});

<强> Working Demo

此外,{jQuery 1.7中已弃用live函数,并在jQuery 1.9中删除了该函数。您应该使用on()代替。

答案 2 :(得分:1)

已经回答了,live()已被弃用,但这就像魅力一样:

<script type="text/javascript">

    $('#myLink').on("click", function () {
        $('#abc')[0].click();
    });
</script>

答案 3 :(得分:1)

我后来意识到,你要做的是什么,

点击只触发点击事件/事件而不是实际的“goto-the-links-href”动作。

您必须编写自己的处理程序,然后 $('#myAnchor').trigger('click'); 才能正常工作......

$("#myLink").click(function(event)
{
  var link = $(this);
  var target = $('#abc').attr("target");

  if($.trim(target).length > 0)
  {
    window.open($('#abc').attr("href"), target);
  }
  else
  {
     window.location = $('#abc').attr("href");
  }

  event.preventDefault();
});

或者javascript,

window.location = document.getElementById('myAnchor').href