Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Принудительный вызов события (https://javascript.ru/forum/events/41840-prinuditelnyjj-vyzov-sobytiya.html)

vladimircape 01.10.2013 12:12

Принудительный вызов события
 
Вот есть live событие
$(document).on('click', 'a.qq-upload-cancel', function() {

как мне его вызвать принудительно, т.е. нажатием другой кнопки
$('a.qq-upload-cancel').click();
пробывал и trigger и triggerHandler
будет ли корректно работать для live ивентов

danik.js 01.10.2013 12:47

<a class="qq-upload-cancel"></a>
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script>
$(document).on('click', 'a.qq-upload-cancel', function() {
    alert('It works!');
});

$('a.qq-upload-cancel').click();
</script>

vladimircape 01.10.2013 12:50

В вашем коде, этот тэг уже существует, т.е. не live .

danik.js 01.10.2013 12:57

Ну тогда думаю нет такой возможности. Потому что делегирование (на котором основан live) работает за счет всплытия события, а если элемент не существует, то и всплытия нет.
А зачем это нужно?

vladimircape 01.10.2013 13:02

Есть старая библиотека
и там такой метод, который останавливает загрузку файла по клику ссылки.
Мне нужно для другого события этот же метод вызывать.

/**
     * delegate click event for cancel link
     **/
    _bindCancelEvent: function(){		
        var self = this,
            list = this._listElement;

        qq.attach(list, 'click', function(e){			
            e = e || window.event;
            var target = e.target || e.srcElement;						
			
			
            if (qq.hasClass(target, self._classes.cancel)){
                qq.preventDefault(e);

                var item = target.parentNode;				
                self._handler.cancel(item.qqFileId);
                qq.remove(item);
            }
        });
    }

vladimircape 01.10.2013 13:48

Я вот нашёл формирование обькта
var FileUploader_photo_url_add_reward_level = new qq.FileUploader({'element':document.getElementById("photo_url_add_reward_level"),'debug':false,'multiple':false,'action':'/corporate/upload','allowedExtensions':['jpg','jpeg','png','gif','bmp'],'sizeLimit':819200000,'onSubmit':function(file, extension) {
                                          },'onComplete':function(file, response, responseJSON) {
                                              $('#modal-add-reward-level2 .thumb').load(function(){
                                                $('#modal-add-reward-level2 .thumb').unbind();
                                                $('#modal-add-reward-level2 .image-placeholder input[type=hidden]').val(responseJSON['filename']);
                                              });
                                              $('#modal-add-reward-level2 .thumb').attr('src', '/../pictures/'+responseJSON['filename']);
                                            },'template':'\r\n                                                    <div class=\"image-placeholder small\"><input type=\"hidden\" name=\"photo_url\"/>\r\n                                                        <span class=\"thumbnail\"><img class=\"img-responsive thumb\" src=\"\" alt=\"\" /><\/span>\r\n                                                    <\/div>\r\n                                                    <div class=\"qq-uploader\">\r\n                                                    <div class=\"qq-upload-drop-area\"><span>Drop files here to upload<\/span><\/div>\r\n                                                    &nbsp; <p class=\"btn btn-default qq-upload-button\" href=\"#\">Select<\/p>\r\n                                                    <span class=\"help-block\">Recommended image size: 640x640 pixels.<\/span>\r\n                                                    <ul class=\"qq-upload-list\"><\/ul>\r\n                                                 <\/div>','messages':{'typeError':'{file} has invalid extension. Only {extensions} are allowed.','sizeError':'{file} is too large, maximum file size is {sizeLimit}.','emptyError':'{file} is empty, please select files again without it.','onLeave':'The files are being uploaded, if you leave now the upload will be cancelled.'},'params':{'PHPSESSID':'vf201sl2pnjmoe7uadls1afk91','YII_CSRF_TOKEN':'07154c9be5f00b7369e74fa1da38abe32e93617c'}}); 
});

Пытаюсь его посмотреть console.log(FileUploader_photo_url_add_reward_leve l); выдает что ошибка


Часовой пояс GMT +3, время: 15:57.