Принудительный вызов события
Вот есть 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, время: 16:32. |