Принудительный вызов события
Вот есть live событие
$(document).on('click', 'a.qq-upload-cancel', function() { как мне его вызвать принудительно, т.е. нажатием другой кнопки $('a.qq-upload-cancel').click(); пробывал и trigger и triggerHandler будет ли корректно работать для live ивентов |
<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> |
В вашем коде, этот тэг уже существует, т.е. не live .
|
Ну тогда думаю нет такой возможности. Потому что делегирование (на котором основан live) работает за счет всплытия события, а если элемент не существует, то и всплытия нет.
А зачем это нужно? |
Есть старая библиотека
и там такой метод, который останавливает загрузку файла по клику ссылки. Мне нужно для другого события этот же метод вызывать. /** * 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); } }); } |
Я вот нашёл формирование обькта
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 <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. |