内部点击无效 .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>
答案 0 :(得分: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',.......
应该足够了。外部点击检测似乎没有任何用处。
答案 1 :(得分:1)
click
和live
都会将事件处理程序附加到元素,因此您的代码只需在每次单击#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