Javascript 无法通过hashchange将URL正确写入HREF
我正在尝试执行document.write()以显示以下3种情况下的动态new.php HREF(#pane1、#pane2、#pane3) 目前,我可以获取要显示的URL,但只能使用包含的单引号(这不会写入正确的值,它只是按照预期显示/写入文本)。如果我去掉newURL变量周围的引号,就会得到“ReferenceError:newURL未定义”,并且整个addnew文本不会按需要显示Javascript 无法通过hashchange将URL正确写入HREF,javascript,jquery,Javascript,Jquery,我正在尝试执行document.write()以显示以下3种情况下的动态new.php HREF(#pane1、#pane2、#pane3) 目前,我可以获取要显示的URL,但只能使用包含的单引号(这不会写入正确的值,它只是按照预期显示/写入文本)。如果我去掉newURL变量周围的引号,就会得到“ReferenceError:newURL未定义”,并且整个addnew文本不会按需要显示 <script type="text/javascript"> $(function(
<script type="text/javascript">
$(function(){
var newURL="";
// Bind the event.
$(window).hashchange( function(){
if(location.hash=="#pane1") {
alert( location.hash );
newURL="new1.php";
}
if(location.hash=="#pane2") {
alert( location.hash );
newURL="new2.php";
}
if(location.hash=="#pane3") {
alert( location.hash );
newURL="new3.php";
}
})
// Trigger the event (useful on page load).
$(window).hashchange();
});
</script>
<li>
<script type="text/javascript">
document.write('Add New'.link('newURL'));
</script>
</li>
$(函数(){
var newURL=“”;
//绑定事件。
$(窗口).hashchange(函数(){
if(location.hash==“#pane1”){
警报(location.hash);
newURL=“new1.php”;
}
if(location.hash==“#pane2”){
警报(location.hash);
newURL=“new2.php”;
}
if(location.hash==“#pane3”){
警报(location.hash);
newURL=“new3.php”;
}
})
//触发事件(在页面加载时有用)。
$(window.hashchange();
});
document.write('addnew'.link('newURL'));
可以在触发document ready事件之前执行文档写入
,该变量也在document ready功能范围内。尝试将var声明置于jquery范围之外:
var newURL="";
$(function(){
...
然后在底部:
<script type="text/javascript">
document.write('Add New'.link(newURL));
</script>
document.write('addnew'.link(newURL));
或者也可以将其包装在文档就绪函数中,以确保在触发窗口对象上的hashchange事件后执行这一行。我认为最后一行不需要单引号,因为newURL是可变的,还可以尝试通过添加;在})之后,
var newURL
被包装在一个函数中,因此作用域在该函数中。document.write()
在全局范围内…非常感谢Alex,移动变量声明确实消除了错误。关于显示“添加新”链接,我还不能让它工作。我尝试了.on('hashchange',function(){和document ready,两者都有相同的结果,即显示添加新文本,但这是页面上唯一加载的内容,页面挂起/从未加载。再次感谢。