【问题标题】:Href Javascript works on desktop but not on MobileHref Javascript 适用于桌面,但不适用于移动设备
【发布时间】:2015-07-10 02:22:00
【问题描述】:

我正在使用此功能来旋转 html 内容。它在笔记本电脑/mac 上工作,但当我“触摸”手机上的链接时无法工作。

<a href="javascript:void(0)" >Link 1</a>
<a href="javascript:void(0)" >Link 2</a>
<a href="javascript:void(0)" >Link 3</a>
<a href="javascript:void(0)" >Link 4</a>
<a href="javascript:void(0)" >Link 5</a>

点击后,html内容会动态变化。

我试过了

<a href="#" onclick="javascript:;" >Link 1</a>

也试过了

<a href="javascript:;">Link 1</a>

两者都不适用于移动设备。知道为什么会这样吗?我需要在javascript中添加任何代码吗?

编辑:

触发代码是这样的。首先它使用一个类。以下是其中一种方法。

bindMoveHandler:function(target){
        var _this = this;
        target.on(_this.options.trigger,'a',function(event){
            var w = $(this).width();
            var current_offset = $(this).offset();
            var control_offset = target.offset();
            var left = current_offset.left - control_offset.left;
            var scale = w/100;
            var d = 0; //index after move finished

完整代码:http://www.jqueryscript.net/demo/jQuery-Plugin-For-Stylish-Tabbed-Slider-Kiwi-Slider/javascripts/kiwi-slider.js 如何修改它以适应建议的解决方案?

【问题讨论】:

  • 如果我没记错 touch 需要一些 css
  • 我很确定你正在寻找这个stackoverflow.com/questions/134845/…
  • 我会尝试这样做,但我不确定如何编辑我当前的代码以适应它。我在上面编辑了我的帖子

标签: javascript jquery html jquery-mobile mobile


【解决方案1】:

使用 jQuery 代替 onclick 属性并使用类似这样的函数调用:

html:

<a href="#" id="onceClicked">Home</a>

jQuery(已测试):

$('#onceClicked').click(function(e) {
    $(this).text('You clicked me!');
});

示例页面如下所示:

<!DOCTYPE html>
<html>
    <head>
        <title>Change Text</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    </head>
    <body>
        <a href="#" class="onceClicked">Link 1</a>
        <a href="#" class="onceClicked">Link 2</a>
        <a href="#" class="onceClicked">Link 3</a>
        <a href="#" class="onceClicked">Link 4</a>
        <a href="#" class="onceClicked">Link 5</a>

        <script>
            $('.onceClicked').click(function(e) {
                $(this).text('You clicked me!');
            });
        </script>
    </body>
</html>

这是一个工作示例:

http://jsfiddle.net/q87dLoc1/

虽然如果你想添加 html 而不仅仅是文本,你可以改变这个:

$(this).text('You clicked me!'); 

到这样的事情:

$(this).html('<b>You clicked me!</b>');

【讨论】:

  • 我想尝试一下,但我不确定如何编辑我当前的代码以适应它。我在上面编辑了我的帖子
  • @OneNation 我的帖子更新了,请看一下。
  • 虽然如果你想添加 html 而不仅仅是文本,你可以将这个:$(this).text('You clicked me!'); 改为:$(this).html('&lt;b&gt;You clicked me!&lt;/b&gt;');
  • 嗨,谢谢。我知道这一点。但目前,我正在使用某种原型方法 javascript。我不确定如何触发事件。请看我编辑的第一篇文章
【解决方案2】:

你试过了吗:

<a href="#" onclick="yourFunction(); return false">Link 1</a>

请记住,此方法可能会占用yourFunction() 的可能返回值。

【讨论】:

  • 我会尝试,但我不确定如何编辑我当前的代码以适应它。我在上面编辑了我的帖子
  • 我很少使用 jQuery,因为我使用 Javascript 所做的几乎所有事情都可以使用原生/香草脚本来完成。你的剧本对我来说很复杂。所以恐怕我不能再帮你了。
猜你喜欢
  • 2016-02-19
  • 1970-01-01
  • 1970-01-01
  • 2013-11-22
  • 2021-04-09
  • 1970-01-01
  • 2016-08-22
  • 2019-09-08
  • 2013-04-03
相关资源
最近更新 更多