-2

内部点击不起作用.HtmlJS脚本在下面。我使用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

4 回答 4

1

您正在使用 jquery 1.8。

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

参考这里

$(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',.......

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

于 2013-08-19T11:18:53.960 回答
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();
});

工作演示

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

于 2013-08-19T11:21:11.190 回答
1

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

<script type="text/javascript">

    $('#myLink').on("click", function () {
        $('#abc')[0].click();
    });
</script>
于 2013-08-19T11:42:07.530 回答
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
于 2013-08-19T11:43:07.110 回答