我有不同链接的下拉列表,在此之前我有2个单选按钮,您可以选择"模式"。
<div class="radio">
<label><input type="radio" name="mode" checked="checked" value="mode1">MODE1</label>
</div>
<div class="radio">
<label><input type="radio" name="mode" value="mode2">MODE2</label>
</div>
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Choose site
<span class="caret"></span></button>
<ul class="dropdown-menu">
<li><a target="_blank" href="http://example.com/index.php?mode=">Site1</a></li>
<li><a target="_blank" href="http://example.com/index.php?mode=">Site2</a></li>
<li><a target="_blank" href="http://example.com/index.php?mode=">Site3</a></li>
</ul>
</div>
我使用此代码段来检测选择的模式并将其添加到var模式:
$(document).ready(function() {
var myRadio = $('input[name=mode]');
myRadio.on('change', function () {
var mode=myRadio.filter(':checked').val();
});
});
我想要做的是将javascript var $ mode添加到href标签。
HREF =&#34; HTTP://example.com/index.php模式= {$模式}
我怎么能做到这一点?
我认为只有用一些javascript函数才能做到这一点? 它不可能只是&#34;打印&#34; var to href?
JSFIDDLE:https://jsfiddle.net/DTcHh/18683/
答案 0 :(得分:2)
使用
data-*
属性保留稍后要使用的静态href
值。.change()
最初会触发更改事件,以设置href
属性的值。
$(document).ready(function() {
var myRadio = $('input[name=mode]');
myRadio.on('change', function() {
var mode = myRadio.filter(':checked').val();
$('ul.dropdown-menu a').prop('href', function() {
return this.getAttribute('data-href') + mode;
})
}).change();
});
<link href="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="radio">
<label>
<input type="radio" name="mode" checked="checked" value="mode1">MODE1</label>
</div>
<div class="radio">
<label>
<input type="radio" name="mode" value="mode2">MODE2</label>
</div>
<div class="dropdown">
<button class="btn btn-primary dropdown-toggle" type="button" data-toggle="dropdown">Choose site
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li><a target="_blank" href="http://site1.com/index.php?mode=" data-href="http://site1.com/index.php?mode=">Site1</a>
</li>
<li><a target="_blank" href="http://site2.com/index.php?mode=" data-href="http://site2.com/index.php?mode=">Site2</a>
</li>
<li><a target="_blank" href="http://site3.com/index.php?mode=" data-href="http://site3.com/index.php?mode=">Site3</a>
</li>
</ul>
</div>
答案 1 :(得分:0)
试试这个: -
typedef struct IppiPoint;
... warning C4091: 'typedef ' : ignored on left of 'IppiPoint' when no variable is declared
... error C2371: 'IppiPoint' : redefinition; different basic types
答案 2 :(得分:0)
检查我为你修改过的小提琴:https://jsfiddle.net/so2fw1o4/1/
将此添加到您的myRadio.on('change',
功能
//here change the urls
$('.dropdown-menu a').each(function(){
$(this).attr('href', $(this).data('url') + mode)
})
您需要为每个链接添加数据属性以存储初始链接
<a target="_blank" data-url="http://site. com/index.php?mode=" href="http://site. com/index.php?mode=">Site1</a>
答案 3 :(得分:0)
虽然你已经有了一些答案,但我想我会发布另一种选择(不一定更好)。
您可以为每个链接添加一个类,处理他们的点击事件,并自己设置新窗口的位置以实现类似的效果。
以下是修改小提琴中jQuery的代码片段:
$(document).ready(function() {
var myRadio = $('input[name=mode]');
var mode = myRadio.filter(':checked').val(); // Initial setting
myRadio.on('change', function () {
mode=myRadio.filter(':checked').val();
});
$('.mode-link').click(function(e) {
e.preventDefault(); //stop the click action
// Check if the mode has been set
if (mode) {
// Create the href value
var newHref = $(this).attr('href') + mode;
// Open the new tab/window with the correct href value
window.open(
newHref,
'_blank'
);
}
});
});
我只是将mode-link
类添加到下拉列表中的每个a
元素,将单选按钮值更改存储在新变量mode
中,添加了click
事件处理程序,最后处理click事件以创建新的href值,并打开一个包含该位置的新选项卡/窗口。
如果你不想要新的标签/窗口,你只需设置location.href = newHref
,但这不会模仿新的标签/窗口打开,因此我使用window.open()
。
我在这里有一个经过修改的示例:JSFiddle