我是 JS > jQuery > select2 和 ... 英语新手! 我的问题:我想要 http://jsfiddle.net/JfWtJ/1/ 中的链接是动态的。
所以,我第一次测试:
function format(state) {
return state.text + "<a class='info' target='_blank' href='http://obs43/test.php?param="+state.id+"' >link</a>";
}
(参见 http://jsfiddle.net/7J8Ag/ )但这不行。
第二次,我测试http://jsfiddle.net/7J8Ag/1/与:
$("#select").on('open', function() {
$('.select2-results i').on('mouseup', function() {
$('#select').on('change', function() {
window.open("http://obs43/test.php?param=" + $("#select").val());
});
});
});
第一次选择是可以的,但是在第二次选择时,有两个“window.open”,在第三次选择时,有三个“window.open”,等等
为什么?我该如何正确地执行此操作?I specify that I want that "window.open..." start with ONLY to click on "link" and not with "$('#select').on('change'..."
我使用第二个写入,因为
$("#select").on('open', function() {
$('.select2-results i').on('mouseup', function() {
window.open("http://obs43/test.php?param=" + $("#select").val());
}); "
看起来不错,但如果你仔细看的话,你会注意到 $("#select").val() 是优先项,而不是列表中选项的 $("#select").val() 。最后一个原则在完整列表中是正确的,但是当您在第一次搜索后使用该列表时就不行了......
最佳答案
使用这个js它将解决你的问题
function format(state) {
// if (!state.id) return state.text; // optgroup
return state.text + "<i class='info' id='"+state.id+"'>link</i>"+state.id;
//return state.text + "<a class='info' target='_blank' href='http://obs43/test.php?param="+state.id+" >link</a>";
}
$("#select").select2({
formatResult: format,
escapeMarkup: function(m) { return m; }
});
$("#select").on('open', function() {
$('.select2-results i').on('mouseup', function(event) {
// alert(event.target.id);
window.open("http://obs43/test.php?param=" +event.target.id);
});
});
添加此功能
$("#select").on('open', function() {
$('.select2-results i').on('mouseup', function(event) {
// alert(event.target.id);
window.open("http://obs43/test.php?param=" +event.target.id);
});
});
关于jquery - 如何拥有不同的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20930899/