0

我正在用 jquery 创建一个切换开关,但仍然不明白如何用这个切换触发任何东西。所以我有这个:

<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
</head>
<body>
<div data-role="page" id="page1">
<div data-role="content">
<div data-role="fieldcontain">
<?php
for($i=0;$i<$num_cameras;$i++)
{
?>

<select name="<?php echo "toggleswitch".$i; ?>" id="<?php echo "toggleswitch".$i; ?>" data-theme="" data-role="slider">
    <option value="off">Off</option>
    <option value="on">On</option>
</select>
<label for="<?php echo "toggleswitch".$i; ?>">
<?php echo $cameras[$i]["camera_name"]; ?> 
</label>
<?php
}
?>                              

</div>
</div>
</div>  

<?php
}
}
?>
</body>

我正在从服务器获取摄像机列表,所以我不知道这是否会使事情复杂化。我想做的是当有人点击切换到“开”时开始播放视频。我不明白我需要从翻转切换开关上的jquery 文档中做什么。

输出如下所示:

<select name="toggleswitch0" id="toggleswitch0" data-theme="" data-role="slider">
<option value="off">Off</option>
<option value="on">On</option>
</select>
<label for="toggleswitch0">Default camera</label>

                                               <select name="toggleswitch1" id="toggleswitch1" data-theme="" data-role="slider">
<option value="off">Off </option>
<option value="on">On</option>
</select>
<label for="toggleswitch1">test</label>

基本上根据我找到的摄像机数量创建了许多切换开关,在这种情况下为 2。我真的不知道从这里到哪里去激活这些切换来做某事(在我的情况下播放视频)。

4

1 回答 1

2

尝试使用 .change() 方法和 .val();

$(document).on('pageinit',function(){
    $('#toggleswitch0').change(function(){ // shortcut for .bind('change')
        if($(this).val() == 'on'){
            $('video')[0].play();
        } else {
            $('video')[0].pause();
        }
    });        
});​​​​​

这是一个示例http://jsfiddle.net/codaniel/STLvS/1/

注意: .on() 仅适用于 jQuery 1.7 + 如果您有早期版本的 jQuery,请使用 bind 或 delegate 代替。

于 2012-05-04T04:56:47.720 回答