在锚标记上使用onclick属性和jquery单击处理程序,只进行onclick函数调用。我们不能兼具单击处理程序的功能

时间:2012-01-20 13:29:06

标签: javascript jquery html

我尝试为锚标记使用多个点击处理程序。一个使用“Onclick”属性处理程序,另一个使用Jquery单击处理程序。

这是我的Html文件。

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script language="JavaScript" type="text/javascript">
    var count = 0;

    $("a[href*='google']").click(function(){
    count =count +1;
    alert(" google called" +count);
 });

  function clickThis()
   {
     count = count + 1 ;
     alert("its onclick Function call " +count);
   }
 </script> 
</head>

<body >
  <a id="foo" onclick="clickThis();" href="http://google.com">google</a>
</body>
</html>

它只运行“onclick”处理程序。我已经检查过处理程序正确选择相同的锚标记。但它的点击处理程序没有运行。

可能是jquery行不会被解析的情况。但是在浏览器中解析html的时间。它从上到下,所以对于脚本标记解析,我们的jquery行将被解析为变量(count)声明。

那么单击URL时Jquery Click处理程序没有被执行的原因是什么呢。

如果它执行那么执行顺序是什么。

先谢谢。

3 个答案:

答案 0 :(得分:1)

在文档“准备就绪”之前,您无法安全地操作页面。via jqfundamentals

您需要将代码包装在$(document).ready处理程序中:

$(document).ready(function() {
    $("a[href*='google']").click(function(){
        count =count +1;
        alert(" google called" +count);
    });
});

答案 1 :(得分:1)

将以下内容添加到$(document).ready():

$("a[href*='google']").click(function(){
    count =count +1;
    alert(" google called" +count);
});

所以它变成了:

$(document).ready(function(){
    $("a[href*='google']").click(function(){
        count =count +1;
        alert(" google called" +count);
    });
});

首先触发OnClick事件,然后触发JQuery点击事件。

答案 2 :(得分:0)

你必须在$(document).ready ....

中包含jQuery处理程序

此代码应该有效:

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script language="JavaScript" type="text/javascript">
    var count = 0;
      $(document).ready(function(){
        $("a[href*='google']").click(function(){
        count = count +1;
        alert(" google called" +count);
     });
    });

  function clickThis()
   {
     count = count + 1 ;
     alert("its onclick Function call " +count);
   }
 </script> 
</head>

<body >
  <a id="foo" onclick="clickThis();" href="http://google.com">google</a>
</body>
</html>