2012-04-15 73 views
1

我有以下代码:onclick事件处理程序不火

<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链接点击?

回答

4

的功能应该是在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="theAnchor"> Save changes</a> 

则...

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

HTML

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

脚本

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

与您现有的代码,如果你想要做下来jQuery的路线,你可以绑定click()这样的事件:

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

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

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