Javascript 无法通知href val?

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);

下面的代码给了我一个警告,里面只有一个符号。为什么?

编辑:我应该注意到代码在jQuery中。单击事件…如果我将它放在jQuery之外,它会正常工作。以下是更完整的代码:

 $('#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,并查看是否在其他任何地方提到它。发现问题。看看我的答案。我将使用一个表单,而不是一个锚作为暂时的工作。