функция jquery не работает на кнопку нажатия? - PullRequest
0 голосов
/ 29 апреля 2018
<button " name="news_name" onClick="news()">news</button>

если я использую функцию jquery

<script Language="JavaScript"> 
$(function () {
 function news(){
console.log('news is going');
}
})

</script>

показывает ошибку

Uncaught ReferenceError:news is not defined at news(...)
at HTMLBUttonElement,onlick(....)

Если я не использую jquery

<script Language="JavaScript"> 
 function news(){
console.log('news is going');
}

</script>

это работает хорошо!

Не знаю, почему нельзя использовать

$(function () {
})

И если это правильно. Я не могу использовать jquery в своем скрипте. Как я могу решить проблему?

Ответы [ 4 ]

0 голосов
/ 30 апреля 2018

Пожалуйста, используйте кнопку типа ввода и установите Id кнопки затем -

$('#btn1').click(function(){


alert('ok');

})
0 голосов
/ 29 апреля 2018

Теги script должны быть маленького регистра, а также attributes, начиная с <Script> и заканчивая </script>, который не закрывает тег.

Атрибут language уже давно устарел и не должен использоваться. Когда W3C работал над HTML5, они обнаружили, что все браузеры имеют "text/javascript" в качестве скрипта по умолчанию type, поэтому они стандартизировали его как значение по умолчанию.

Просто используйте <script></script> или <script type="text/javascript"></script>, если хотите.

Тогда, как указано в комментариях @Eddie, вы не заключаете текст в кавычки внутри console.log()

используйте как

function news() {
  console.log('news is going');
}
$("#news_name").on('click', news);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button name="news_name" id="news_name">news</button>
0 голосов
/ 29 апреля 2018

var news=null;

$(function(){
     news=function(){
            console.log('news is going');
     }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


<button name="news_name" onClick="news()">news</button>
0 голосов
/ 29 апреля 2018

Inline onClick может получить доступ только к глобальным объектам. Вы также неправильно написали function в fuction news()

Когда вы объявляете функцию внутри $(function(), она находится в закрытии и недоступна в глобальной (оконной) области действия

Как правило, лучше не использовать встроенные обработчики событий, и поскольку вы используете jQuery, вы можете легко незаметно добавить прослушиватель событий

function news(){
  console.log('news is going');
}

$(function(){
  $('button[name="news_name"]').click(news)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button name="news_name">news</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...