firefox操作系统中的图像元素上的onclick事件

时间:2015-04-21 05:52:01

标签: javascript jquery firefox-os

     function listContents(storagename) {

        alert("inside function");
        //Clear up the list first
            $('#results').html("");
            var files = navigator.getDeviceStorage(storagename);

            var cursor = files.enumerate();

            cursor.onsuccess = function () {
              //alert("Got something");
              var file = this.result;
              if (file != null) {
        var imageElement = $('<img height="100" width="75">');
              imageElement.attr('src', window.URL.createObjectURL(file));
              var tagvalue=  $("<p>" + file.name + "," + file.lastModifiedDate + "," + file.type + "," + file.size  + "</p>").appendTo('#results');
              imageElement.appendTo("#results");
                this.done = false;
              }
              else {
                this.done = true;
              }

              if (!this.done) {
                this.continue();
              }
            }
}

imageElement.onclick = function() { 
console.log('onclick function!');
//alert('blah');
}

我正在从Firefox OS中的SDCard中检索音频文件列表。现在我想将这个文件上传到服务器,所以当我对图像元素进行onclick时,我可以做任何事件,所以我试图显示警告框但是它不起作用。

1 个答案:

答案 0 :(得分:0)

imageElement函数外部看不到listContents,您需要通过绑定以其他方式注册onclick处理程序。

$('#results > img').on('click', function() { 
  console.log('onclick function!');
  //alert('blah');
});

或者在listContents函数中注册它。

其次,如果您使用的是jQuery,请坚持使用,使用click()on()方法,而不是普通的javascript事件(在您的示例中为onclick

作为提示:清理元素内容使用空函数,如:

$('#results').empty();