列表视图上的OnClick事件问题?

时间:2014-04-09 18:05:43

标签: javascript jquery

如何在列表视图上执行onclick事件。如果我点击任何列表项,我需要提醒它作为它的相应值。这可能吗?这是我的代码,

  $("#select-choice").on('change', function(event) {


     $("#locationList").empty();
      var catg = this.value;
      var db = window.sqlitePlugin.openDatabase({name: "MYDB"});
      db.transaction(function (tx) {
      tx.executeSql("select Location from Locationlog WHERE Category = '"+catg+"';", [], function (tx, res) {
     var optionheading = '<li value="Select Location">Select Location</li>';
                           $("#locationList").append(optionheading);
                           for (var i = 0; i < res.rows.length; i++) {
                           var opt  = '<li value="';
                           opt += res.rows.item(i).Location;
                           opt += '">';
                           opt += res.rows.item(i).Location;
                           opt += '</li>';
                           $("#locationList").append(opt);
                           }
                           $("#locationList").listview('refresh');
                           });
                           });
                           });

我正在尝试使用如下代码,但它无法正常工作。请提出任何建议,

 $('#locationList > li').click(function(e){
       alert($(this).attr('value'));
        });

HTML:

<ul data-role="listview" id="locationList" name="locationList" data-inset="true">
   <li value="Select Location">Select Location</li>
 </ul>

2 个答案:

答案 0 :(得分:4)

value不是li元素的有效属性,因此this.value也无法使用。

我建议使用data-*属性:

<li data-value="A">a</li>

然后您可以通过以下方式获取值:

$(this).data('value')
// or
$(this).attr('data-value')

答案 1 :(得分:1)

$('#locationList > li').click(function(e){
 alert($(this).attr('value'));
});

See JSFiddle