javascript event

Discussion in 'PHP' started by barnaki, 24 Sep 2013.

  1. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    добрый день
    навешивается у меня обработчик
    PHP:
     this.uploadPlace.addEventListener("drop"this.drop(this.uploadPlace,status ), false);
    и вот эту функция его принимает
    PHP:
     this.drop = function(event,thisplace,thisStatus) {
                
    console.info(event);
                return 
    false;
                
    event.preventDefault();
                var 
    dt event.dataTransfer;
                var 
    files dt.files;
                for (var 
    0i<files.lengthi++) {
                    var 
    file files[i];
                    
    upload(file,thisplacethisStatus);
                }
            }
    как видите передается 2 параметра . а принимается 3. вопрос как передать сам event первым параметром
    Code:
     this.uploadPlace.addEventListener("drop", this.drop([B]ВОТ ТУТ как то надо передать event[/B] ,this.uploadPlace,status ), false);
     
  2. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    ты неправильно используешь. Ты вызываешь метод, а надо его передавать или (в твоем случае) обернуть в другую функцию

    ...'drop', function(param1, param2...) {
    this.load(какой-то из параметров, this.place, status);
    }.bind(this)...

    первый или второй параметр будет ивентом - я не помню.
     
  3. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    непонимаю.
    можешь написисать как это будет у меня ?
     
  4. Melfis

    Melfis Elder - Старейшина

    Joined:
    25 Apr 2011
    Messages:
    505
    Likes Received:
    105
    Reputations:
    53
    Code:
    this.uploadPlace.addEventListener('drop',
    	function(event) {
    		this.load(event, this.uploadPlace, status);
    	}.bind(this),
    	false
    );
     
    1 person likes this.
  5. barnaki

    barnaki Elder - Старейшина

    Joined:
    2 Nov 2008
    Messages:
    676
    Likes Received:
    140
    Reputations:
    4
    спасибо. но мне подфортило. я для магенты пишу сейчас код. так вот в ней event расширенный . и можно было сделать так
    PHP:
    this.drop = function(event) {
                
    event.preventDefault();
                var 
    element Event.element(event);
                var 
    dt event.dataTransfer;
                var 
    files dt.files;
                var 
    file files[0];
                
    upload(file,element);
            }
    и получить элемент . а то мне и надо было