2012-04-15 71 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函數中定義了它。