Javascript 无法通知href val?
下面的代码给了我一个警告,里面只有一个符号。为什么? 编辑:我应该注意到代码在jQuery中。单击事件…如果我将它放在jQuery之外,它会正常工作。以下是更完整的代码:Javascript 无法通知href val?,javascript,jquery,xcode,jquery-mobile,href,Javascript,Jquery,Xcode,Jquery Mobile,Href,下面的代码给了我一个警告,里面只有一个符号。为什么? 编辑:我应该注意到代码在jQuery中。单击事件…如果我将它放在jQuery之外,它会正常工作。以下是更完整的代码: $('#continue').click(function(){ var _href = $("#continue").attr("href"); alert(_href);
$('#continue').click(function(){
var _href = $("#continue").attr("href");
alert(_href);
});
<a href="selectRadius.html" data-icon="arrow-r" id="continue" style="float:right;" data-role="button" data-inline="true">Continue</a>
EDIT2:这一切在JSFIDLE中都可以正常工作。但是在xcode iphone模拟器中,我得到了。仅从您键入的代码判断,可能代码运行得太早了。尝试将JS包装到
$(function() {
// your code here
});
或
更新:
好吧,因为它是一个iPhone模拟器,它改变了一切。记住,除非你给出问题的所有细节,否则没有人能帮助你,不管他们有多少经验
您是否尝试了touchstart/touchend/tap事件而不是单击?据我所知,苹果在点击事件方面一直存在问题。此外,如果我记得清楚的话,移动设备上的点击事件的响应速度会慢一些,延迟大约300毫秒,因此您最好只使用特定于触摸的事件
你在建什么?它是一款移动网络应用程序还是一款手机应用程序?它会在标准手机浏览器或类似PhoneGap之类的浏览器中运行吗
更新2:
嗯。只要不在单击时调用代码,它就可以工作。这消除了另一段代码用另一个值替换href的可能性,因为该代码必须位于$'continue'中;街区
点击事件是在触摸电话上模拟的,这就是为什么触摸事件速度更快——它们是本地的,不太可能引起问题。您还应该确保在此处返回false,而不是跟随链接,这可能是替换href的原因 仅从您键入的代码判断,可能代码运行得太早了。尝试将JS包装到
$(function() {
// your code here
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$('#continue').click(function(e) {
var _href = $(this).attr('href');
alert(_href);
e.preventDefault();
return(false);
/*
the return is legacy code, used by some
browsers to detect if current event handler
is braking default behaviour
the e.preventDefault() function is the jQuery
way to do it
*/
});
});
</script>
<a href="selectRadius.html" data-icon="arrow-r" id="continue" style="float:right;" data-role="button" data-inline="true">Continue</a>
或
更新:
好吧,因为它是一个iPhone模拟器,它改变了一切。记住,除非你给出问题的所有细节,否则没有人能帮助你,不管他们有多少经验
您是否尝试了touchstart/touchend/tap事件而不是单击?据我所知,苹果在点击事件方面一直存在问题。此外,如果我记得清楚的话,移动设备上的点击事件的响应速度会慢一些,延迟大约300毫秒,因此您最好只使用特定于触摸的事件
你在建什么?它是一款移动网络应用程序还是一款手机应用程序?它会在标准手机浏览器或类似PhoneGap之类的浏览器中运行吗
更新2:
嗯。只要不在单击时调用代码,它就可以工作。这消除了另一段代码用另一个值替换href的可能性,因为该代码必须位于$'continue'中;街区
点击事件是在触摸电话上模拟的,这就是为什么触摸事件速度更快——它们是本地的,不太可能引起问题。您还应该确保在此处返回false,而不是跟随链接,这可能是替换href的原因
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$('#continue').click(function(e) {
var _href = $(this).attr('href');
alert(_href);
e.preventDefault();
return(false);
/*
the return is legacy code, used by some
browsers to detect if current event handler
is braking default behaviour
the e.preventDefault() function is the jQuery
way to do it
*/
});
});
</script>
<a href="selectRadius.html" data-icon="arrow-r" id="continue" style="float:right;" data-role="button" data-inline="true">Continue</a>
如果没有这一行,将跟随链接并刷新当前脚本
如果没有这一行,链接将被跟踪,刷新将终止当前脚本。在此处工作:希望您包括这样的标记:您是否正在使用jQuery Mobile et jQuery UI,有可能吗?Mobile。是的,是的,我正在使用我的脚本标签,哈哈。你的小提琴和我的代码完全一样……令人困惑。这是在xcode iPhone模拟器中测试的,并给出了不同的结果。诚然,jQuery Mobile涉及其中,因此……当我在内联脚本中而不是在head中使用完全相同的代码时,它会提醒正确的值。奇怪。我似乎记得读过一些关于iPhone浏览器如何引发“点击”事件而不是“点击”事件的文章,但是如果我找不到书签,那就麻烦了…:在这里工作:希望您包括这样的标签:您是否正在使用jQuery Mobile和jQuery UI?手机。是的,是的,我正在使用我的脚本标签,哈哈。你的小提琴和我的代码完全一样……令人困惑。这是在xcode iPhone模拟器中测试的,并给出了不同的结果。诚然,jQuery Mobile涉及其中,因此……当我在内联脚本中而不是在head中使用完全相同的代码时,它会提醒正确的值。奇怪。我似乎记得读过一些关于iPhone浏览器如何引发“点击”事件而不是“点击”事件的文章,但是如果我找不到书签,那就麻烦了…:我对此表示怀疑。它找不到continue,因为它还不在那里。在加载DOM之前,您不需要调用click,因此使用$document.ready…老实说,它已经在其中了。这是一个更大的脚本的一部分,它都在$function{code here}中@MarkReed假设他的代码是alert,它会找到元素,否则它会有未定义的alert。问题是找出是什么将元素的href替换为。哦,哦,他得到了警报弹出窗口,只是值错误。对不起,很抱歉信息不完整。我的错误。但据我所知,.click很好用。我一直在广泛使用它,没有任何错误。我对此表示怀疑。它找不到continue,因为它不是continue
到现在为止。在加载DOM之前,您不需要调用click,因此使用$document.ready…老实说,它已经在其中了。这是一个更大的脚本的一部分,它都在$function{code here}中@MarkReed假设他的代码是alert,它会找到元素,否则它会有未定义的alert。问题是找出是什么将元素的href替换为。哦,哦,他得到了警报弹出窗口,只是值错误。对不起,很抱歉信息不完整。我的错误。但据我所知,.click很好用。我一直在广泛使用它,没有任何错误。不幸的是,这并没有解决问题。我仍然得到一个哈希符号。正如其他人所说,continue按钮的href可能已被应用程序另一部分中的某段代码替换为。在整个项目中搜索continue,并查看是否在其他任何地方提到它。发现问题。看看我的答案。我将使用一个表单而不是锚定作为暂时的解决方法。不幸的是,这并没有解决问题。我仍然得到一个哈希符号。正如其他人所说,continue按钮的href可能已被应用程序另一部分中的某段代码替换为。在整个项目中搜索continue,并查看是否在其他任何地方提到它。发现问题。看看我的答案。我将使用一个表单,而不是一个锚作为暂时的工作。