onclick事件处理程序不会触发

时间:2012-04-15 19:33:56

标签: javascript jquery html

我有以下代码:

<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的链接?

3 个答案:

答案 0 :(得分:3)

该函数应该在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();
    });
});

答案 1 :(得分:0)

HTML

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

脚本

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

答案 2 :(得分:0)

使用现有代码,如果要执行jQuery路由,可以绑定click()事件,如下所示:

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

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

您现有代码无法正常工作的原因是onclick无法找到您的函数,因为您在jQuery $(document).ready函数中定义了它。