2012-04-15 5 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 вот так:

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

Тогда ...

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

HTML

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

Script

$(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> 

Это обязательное событие click для всех элементов класса .btn. Вы можете использовать другой селектор, если хотите быть более конкретным.

Причина, по которой ваш существующий код не работает, заключается в том, что onclick не может найти вашу функцию, потому что вы определили ее внутри функции jQuery $(document).ready.

Смежные вопросы