点击按钮上的jquery功能不起作用?

时间:2018-04-29 15:16:22

标签: jquery button onclick

<button " name="news_name" onClick="news()">news</button>

如果我使用jquery函数

<script Language="JavaScript"> 
$(function () {
 function news(){
console.log('news is going');
}
})

</script>

显示错误

Uncaught ReferenceError:news is not defined at news(...)
at HTMLBUttonElement,onlick(....)

如果我不使用jquery

<script Language="JavaScript"> 
 function news(){
console.log('news is going');
}

</script>

效果很好!

我不知道为什么不能使用

$(function () {
})

如果它是对的。我不能在我的脚本上使用jquery。我可以解决这个问题吗?

4 个答案:

答案 0 :(得分:1)

内联onClick只能访问全局对象。您还在function

中错误拼写了fuction news()

$(function()中声明函数时,它在闭包内,在全局(窗口)范围内不可用

通常最好不要使用内联事件处理程序,因为你使用jQuery可以轻松地添加一个事件监听器

&#13;
&#13;
function news(){
  console.log('news is going');
}

$(function(){
  $('button[name="news_name"]').click(news)
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button name="news_name">news</button>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

script标记应该是小写的,attributes也是<Script>开头,而</script>结尾不会关闭标记。

language属性已被弃用很长时间,不应使用。当W3C正在使用HTML5时,他们发现所有浏览器都将"text/javascript"作为默认脚本type,因此他们将其标准化为默认值。

如果您愿意,可以使用<script></script><script type="text/javascript"></script>

然后如@Eddie的评论中所述,您没有将文字包装在console.log()

内的引号中

使用

function news() {
  console.log('news is going');
}
$("#news_name").on('click', news);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button name="news_name" id="news_name">news</button>

答案 2 :(得分:1)

var news=null;

$(function(){
     news=function(){
            console.log('news is going');
     }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


<button name="news_name" onClick="news()">news</button>

答案 3 :(得分:0)

请使用输入类型按钮并设置按钮的ID然后 -

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


alert('ok');

})