无法提醒href val?

时间:2012-05-27 02:47:10

标签: javascript jquery xcode jquery-mobile href

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

编辑:我应该注意代码是在jQuery .click事件中...如果我把它放在它之外,它可以正常工作。这是更全面的代码:

 $('#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:这在jsfiddle中运行良好。但是在xcode iphone模拟器中,我只是得到#。

3 个答案:

答案 0 :(得分:3)

仅根据您键入的代码判断,代码可能运行得太早。尝试在

中包装JS
$(function() {
    // your code here
});

$(document).ready(function(){ 
    // your code here
});

<强>更新

嗯,因为它是一个iPhone模拟器,它改变了一些东西。请记住,除非您提供问题的所有细节,否则没有人可以帮助您,无论他们有多少经验。

您是否尝试过touchstart / touchend / tap事件而非点击?据我所知,Apple在点击事件方面遇到了问题。此外,移动设备上的点击事件响应会较慢(如果我记得很清楚,延迟时间约为300毫秒),因此您最好只使用触摸特定事件。

你在建什么?它是移动网络应用程序还是?它会在标准的移动浏览器或PhoneGap等运行吗?

<强> UPDATE2:

确定。只要在Click上没有调用代码,它就可以工作。这消除了另一段代码用另一个值替换“href”的可能性,因为该代码必须位于$('#continue').click(function(){ });块内。

点击事件是在触摸手机上模拟的,这就是触摸事件更快(它们是原生的)并且不太可能导致问题的原因。您还应该确保在那里返回false而不是关注链接,这可能正在取代您的“href”。

答案 1 :(得分:1)

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

如果没有此行,则会跟踪链接,并且会刷新当前脚本。

答案 2 :(得分:0)