2017-02-04 10 views
1

Я просто попытался реализовать json tag editor для создания редактора тегов. Я хочу реализовать его в более крупном проекте laravel. Поэтому я включил jQuery, а также js и css-файл из редактора json-тегов. Все это прекрасно загружается, что я понял на вкладке сети.

Теперь у меня есть:

входной элемент:

<input id="keywords" class="form-control" name="keywords" 
              autofocus></div> 

и на верхней части страницы, у меня есть:

$().ready(function(){   
    $('#keywords').jsonTagEditor(); 
}); 

Но я получаю сообщение об ошибке сказав Uncaught TypeError: $(...).jsonTagEditor is not a function ...

Как я уже сказал, файлы загружаются, как я могу видеть в сети rk tab ...

Любые идеи в чем проблема?

Снова, чтобы все было ясно, я использую laravel, поэтому все файлы включены в файл мастер-макета, и я пытаюсь использовать его в документе, который расширяет этот мастер-шаблон. Но ничего не меняйте, поскольку я уже использую некоторые другие плагины, которые отлично работают.

Любые идеи?

+1

либо вы не включили плагин или вы загрузили JQuery дважды, и второй один переписаны плагин – epascarello

+0

@epascarello Что UPI? и как я могу включить его в другое поле – nameless

+0

Эта вещь 'jsonTagEditor' не является частью jQuery; это своего рода дополнение. – Pointy

ответ

2

После некоторого обсуждения в чате проблема оказывается предполагаемым повторным импортом и повторной инициализацией jQuery. У рамки Laravel есть собственный импорт jQuery, который происходит через require(), и это происходило после импорта плагина.

Перемещение импорта плагина в конец <body> было выполнено, но в дополнение к этому плагин (с этой записью) имеет ошибку и должен быть инициализирован пустым объектом, переданным (или, возможно, любым другим значением):

$("#keywords").jsonTagEditor({}); 
0

Вам не хватает document и просто убедитесь, что элемент доступен, поместите свой скрипт до конца '</body>', чтобы он сначала загружал содержимое вашей страницы.

$(document).ready(function(){   
    $('#keywords').jsonTagEditor(); 
}); 
+0

Имея «документ», нет необходимости. – Pointy

+0

Ну '$(). Ready (function()' неверно, он должен быть '$ (function() {...', если он хочет использовать метод коротких рук. – Win

+0

Нет, '$(). Ready () 'отлично.' $() 'всегда возвращает объект jQuery, а метод' .ready() 'всегда делает то же самое независимо. Я согласен с тем, что простая' $ (function() ...) 'будет будь лучше. – Pointy

0

Вы забыли написать документ

Вместо этого

$().ready(function(){}); 

Используйте этот

$(document).ready(() => {}); 

The => средства, которые вы используете новейшие STANDARTS из JS

Или вы можете просто использовать this alternative jQuery tagEditor

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

  • Нет связанных вопросов^_^