У меня есть файл custom.js в папке app/assets, который был создан при создании пользовательского контроллера. Теперь я создал файл custom_action.js.erb в приложении/представлениях/обычаях, который является частью пользовательских представлений контроллера. Этот файл custom_action.js.erb используется для обработки ajax respose.
Теперь проблема, с которой я сталкиваюсь, заключается в том, что я не могу использовать функции доступа, определенные в custom.js для custom_action.js.erb. Это мой файл custom.js.
$(document).ready(function(){
function someFunction() {
// do something
}
}
И это мой файл custom_action.js.erb.
$('#selector').onClick{
someFunction(); //This is where I want to access the custom.js function
}
Сейчас я повторяю эту функцию в файле custom.js и custom_action.js.erb. Есть ли способ избежать этого повтора и сделать функцию доступной, когда я определяю ее в файле custom.js.
Вам не нужно обертывать функцию в $(document).ready
. Когда вы это делаете, он имеет только область видимости в этой конкретной функции обработчика обратного вызова. Также jQuery не имеет метода onClick
.
$(document).ready
необходим только для кода, который будет немедленно запускаться при загрузке страницы, что необходимо будет найти элементы на странице.
function someFunction() {
// do something
}
$(document).ready(function(){
$('#selector').click(function(){
someFunction();
});
/* or */
$('#selector').click(someFunction);
});