2016-09-27 7 views
0

Привет, У меня есть проект с использованием текстовых полей autosize, это поле необходимо обновить, используя триггер «autosize: update», если поле редактируется скриптом, но у меня есть некоторые проблема с тем, чтобы это работало. Если я попытаюсь ввести:.trigger() не запускает событие autosize

$('.auto-size').trigger('autosize:update') 

В консоли, когда обновление должно произойти, ничего не происходит, и я не уверен, почему?

Я довольно новичок в javascript/jquery, поэтому любая помощь будет принята с благодарностью.

+0

Пробовал ли вы код, который находится почти в верхней части страницы, на которую вы ссылаетесь, где вместо нее используется 'dispatchEvent', чтобы вызвать то же самое событие. – adeneo

+0

Я пробовал это, но я также не мог заставить его работать таким образом, я предположил, что этот метод и способ, которым я опубликовал в вопросе, будут функционально эквивалентны, так как оба они должны запускать событие. – user2320239

+0

jQuery 'trigger()' ** only ** запускает события, связанные с jQuery, поэтому плагин должен использовать jQuery для этих пользовательских событий, и кажется странным, что если бы это было так, они использовали бы 'dispatchEvent' в документах? – adeneo

ответ

0

Как сообщается в документации, вы можете использовать:

autosize.update($('.auto-size')); 

или вы можете использовать:

var evt = document.createEvent('Event'); 
    evt.initEvent('autosize:update', true, false); 
    $('.auto-size').get(0).dispatchEvent(evt); 

Пример:

// initialiaze the field 
 
autosize($('.auto-size')); 
 

 

 
// add new text to textarea and update! 
 
$('#myBtn').on('click', function(e) { 
 
    var ele = $('.auto-size'); 
 
    ele.text(ele.text() + 'This is a new line.\n'); 
 

 
    autosize.update(ele); 
 
    
 
    // Dispatch a 'autosize:update' event to trigger a resize: 
 
    //var evt = document.createEvent('Event'); 
 
    //evt.initEvent('autosize:update', true, false); 
 
    //$('.auto-size').get(0).dispatchEvent(evt); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://rawgit.com/jackmoore/autosize/master/dist/autosize.min.js"></script> 
 

 

 
<textarea class="auto-size"></textarea> 
 

 
<button id="myBtn">Click Me</button>

-1

if autosize: обновление является собственностью css, возможно, это, но я не могу найти его в Интернете. Но если это,

$(".auto-size").trigger(function(){ 
    $(".auto-size").css("autosize","update"); 
}); 
+0

uhm ... no ... .trigger не принимает функцию в качестве параметра ... –

+0

Что такое autosize: update? и можете ли вы воспроизвести весь сценарий? – eclipseIzHere

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