0

我想在更改时提醒开关的值,但是警报框中出现了一些长代码链

HTML

<div align="right">
        <select name="switch" id="alleventsswitch" data-role="slider" data-mini="true">
            <option value="off">No Past</option>
            <option value="on">Past</option>
        </select>
</div>

JAVASCRIPT

$('#alleventsswitch').change( function() {

    alert($('select').slider().val);

});

显然 .val 不起作用

4

2 回答 2

1

这应该有效:

$('#alleventsswitch').change( function() {
    alert($('select').val());
});

工作的jsFiddle:

如果要专门选择select带有 的元素data-role="slider",可以使用:

$('#alleventsswitch').change( function() {
    alert($('select[data-role="slider"]').val());
});

工作的jsFiddle:

希望这可以帮助。

于 2013-07-09T01:54:41.370 回答
1

你只需要这样:

$('#alleventsswitch').change(function () {
    console.log(this.value); 
});

演示

在处理程序内部this表示选择元素本身,您可以将其值访问为this.value. 通过这样做$('select').slider(),您会不必要地调用不需要的滑块的构造函数插件。同时使用 console.log 而不是 alert,尤其是在测试易受鼠标移动影响的滑块的情况下。此外,通过这样做$('select').val(),您最终可能会在此元素之前获得可能存在于 DOM 中的另一个选择的值,您希望将当前元素定位为this在处理程序中使用的当前元素。

于 2013-07-09T01:59:09.503 回答