2011-12-15 84 views
3

jQuery Mobile为我们提供了这些不错的自定义选择菜单,其中菜单以叠加形式出现。我试图将onclick函数附加到这些选项,但是由于jQuery Mobile用自己生成的标签替换了选项标签。我似乎无法获得附加到“选项”(实际上是作为样式链接生成)的函数。Fire onClick事件jQuery Mobile选择菜单

回答

5

而不是绑定到click事件为“假选项”的元素,怎么样结合到change事件的<select>元素:

$('#the-select').on('change', function() { 
    var $this = $(this), 
     val = $this.val(); 
}); 

这里是一个演示:http://jsfiddle.net/PQ39n/

.on()是jQuery 1.7中的新增功能,在这种情况下与.bind()相同。

编辑

如果你想绑定到click事件为 “假选项” 元素:

$('#the-page').on('click', '.ui-selectmenu-list > li', function() { 
    alert('onClick = ' + $('#the-select').children().eq($(this).attr('data-option-index')).val()); 
}); 

这里是一个演示:http://jsfiddle.net/PQ39n/(同样的demo,如上)

在此示例中,.on().delegate()相同。

+0

在select上绑定到'change'事件是一个很好的回退,但它并不总是有用,因为它的响应非常慢。如果您想提供触觉反馈(选项选择时出现蜂鸣),则等待反馈,直到选择菜单更改为止。 – Wytze

相关问题