我想模仿ctrl +点击互动,在所有浏览器的后台标签中打开一个链接。
略有不同的是,该链接基于正在检查的复选框。
以下是JSbin +该问题的代码供将来参考:
JSBin链接
http://jsbin.com/hisozawibu/2/
代码
<input class="ad-check" data-url="http://www.google.com" type="checkbox" id="test" name="test" />
<label for="test">Test</label>
$('body').on('click', '.ad-check' ,function(){
var self = $(this);
window.open(self.attr('data-url'), "_blank");
window.blur();
});
我看过图书馆,但似乎没必要这么简单。
当您搜索酒店并选择提供商时,可以在Kayak上看到我想要实现的技术。
乙
答案 0 :(得分:0)
这就是你需要的。
$('body').on('click', '.ad-check' ,function(){
var self = $(this);
var win = window.open(self.attr('data-url'), "_blank", 'modal=yes');
win.blur();
});
修改:
如果你也关注旧的那个怎么办。
http://jsfiddle.net/5fz2u6Lq/1/
$('body').on('click', '.ad-check' ,function(){
var self = $(this);
var current = window;
var win = window.open(self.attr('data-url'), "_blank", "modal=yes");
win.blur();
current.focus();
});
答案 1 :(得分:0)
注意,使用此http://jsfiddle.net/azproduction/LRc7Z/模式
尝试
HTML
<input class="ad-check" data-url="http://www.google.com" type="checkbox" id="test" name="test" />
<label for="test">Test</label>
<a id="ad-check-link" href=""></a>
JS
var simulateClick = function (ctrl, shift, isMiddle) {
var evt = document.createEvent('MouseEvents');
evt.initMouseEvent('click'
, true, true, window
, 0, 0, 0, 0, 0, ctrl
, false, shift, false
, isMiddle ? 1 : 0, null );
document.getElementById('ad-check-link').dispatchEvent(evt);
};
// substituted `.one()` for `.on()` to prevent calling action
// if clicked second time, after being initially checked by first click
$('body').one('click', '.ad-check' ,function(){
var self = $(this);
var link = $("a#ad-check-link")
.prop("href", self.attr('data-url'))[0];
link.onclick = simulateClick(true, false, false);
});