我有一个getJSON函数,可以将结果转换为html模板,以显示为包含每个列表项中不同超链接的列表。我需要覆盖链接的正常html函数,因此它不会打开新页面,而是使用我的navClickListener()函数中的load()方法加载到特定的分区。
如果我将一个虚拟网址放入var gotoURL = '';//<--..AND GET THE ITEMS LINK INTO THIS VAR...
,它会按计划运行,但我需要从数组项中获取实际网址。
我无法想办法做到这一点。您可以通过我的片段查看并注意所有CAPS中的内联评论。
谢谢你的帮助。
function loadNav(url, container, appendE) {
$.getJSON(url, function(data){
$.each(data.items, function(){
var newItem = $('#' + container).clone();
// Now fill in the fields with the data
. . . .
newItem.find("a").attr("href", this.gotoURL);//<--PREVENT NORMAL FUNCTION...
// And add the new list item to the page
newItem.children().appendTo('#' + appendE)
});
. . . .
// Click listener for navigation items
var target = data.targetKey;
var gotoURL = '';//<--..AND GET THE ITEMS LINK INTO THIS VAR...
navClickListener(appendE, target, gotoURL);
});
};
/* ========== Navigation click listener function ============= */
function navClickListener(appendE, target, gotoURL) {
$('#' + appendE).on('click', 'a', function(e){
e.preventDefault();
$('#' + target).load(gotoURL);//<--...SO IT GETS INTO HERE??
. . . .
});
};
答案 0 :(得分:0)
好的,我厌倦了添加更多评论的东西,当我点击输入时它会一直发布。
我想我想说的是我不知道你的gotoURL来自哪里。我会尝试在其中放置一个虚拟URL进行测试,以查看您的URL是否更新。如果确实如此,那么你的gotoURL就是问题所在。
newItem.find("a").attr("href", "IAmtesting.com")
这里还有一些fiddler
答案 1 :(得分:0)
执行此操作的最佳方法是在href中执行内联JavaScript,需要将数据库中的gotoURL行更改为:javascript:navClickListener('bodyContent', 'http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content');
这对于保持双引号的内联很重要在newItem.find("a").attr("href", this.gotoURL);
函数中执行jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] )
时结束。任何其他类型的内联javaScript方法都行不通! (即:javascript:void(0);" onclick='javascript:navClickListener("navContent", "bodyContent" "http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content");')
&lt; - 请参阅 onClick 之前的结束引用。
上面的其他脚本更改:
REMOVED:
var gotoURL = '';//<--..AND GET THE ITEMS LINK INTO THIS VAR...
navClickListener(appendE, target, gotoURL);
将navClickListener()函数更改为:
function navClickListener(target, gotoURL) {
$('#' + target).load(gotoURL);
};
更改了gotoURL中的数据库数据:
/wiki/index.php/Airworthiness_Directive #content
为:
javascript:navClickListener('bodyContent', 'http://192.168.1.34/wiki/index.php/Airworthiness_Directive #content');