onClick 事件处理程序不会触发

onclick event handler doesn't fire

本文关键字:事件处理 程序 onClick      更新时间:2023-09-26

我有以下代码:

<div class="modal-footer">
   <a class="btn btn-primary" onclick="saveChanges ();">Save changes</a>
</div>
<script type="text/javascript">
$(document).ready(function() {
   function saveChanges () {
      tinyMCE.triggerSave();
   } 
   ...
   ...

我不确定为什么,但是当我单击"保存更改"链接时,没有任何反应,它似乎没有调用saveChanges函数。

有没有办法我可以从链接中删除onClick事件并拥有它,以便将saveChanges()功能附加到单击带有jQuery的链接上?

该函数应该在global scope中,如果它在内部作用域中,则onclick=...无法访问:

<script type="text/javascript">
   function saveChanges () {
      tinyMCE.triggerSave();
   } 
</script>

或使用 jQuery

<a class="btn btn-primary"> Save changes</a>
<script type="text/javascript">
$(function(){
    $('.btn-primary').click(function(){
        tinyMCE.triggerSave();
    });
});
</script>

<a>一个这样的id是个好主意:

<a id="theAnchor"> Save changes</a>

然后。。。

$(function(){
    $('#theAnchor').click(function(){
        tinyMCE.triggerSave();
    });
});

HTML

 <a class="btn btn-primary" id="btnSave">Save changes</a>

脚本

$(function(){
 $("#btnSave").click(function(){
   //Your code for Save changes goes here
 });
});

使用您现有的代码,如果您想沿着 jQuery 路由进行操作,您可以像这样绑定 click() 事件:

<script type="text/javascript">
    $(function() {
        $('.btn').click(function(e) {
            tinyMCE.triggerSave();
            e.preventDefault();
        });
    });
</script>

这是将 click 事件绑定到具有类 .btn 的所有元素。如果您想更具体,可以使用不同的选择器。

现有代码不起作用的原因是 onclick 找不到您的函数,因为您在 jQuery $(document).ready 函数中定义了它。