【问题标题】:html button not respond to jquery click methodhtml按钮不响应jquery点击方法
【发布时间】:2014-01-30 21:02:54
【问题描述】:

您好,我是 jquery 的新手,我已经在这个论坛上研究过这个主题,但这仍然对我不起作用。我有一个画廊正在播放我想添加暂停按钮的图像。我无法让代码响应单击按钮。

<input type ="button" id="toggleAutoPlayBtn" value="PAUSE"/>    

我试过这个来测试(没用):

$(document).on('click', '#toggleAutoPlayBtn', function(){
                $("p").text("clicked!");
});

我也试过这个来测试(没用)

$(function(){
    $("#toggleAutoPlayBtn").click(function(){
        alert('clicked!');
    });
});

我尝试将 'id' 交换为 'class'(# 到 .)(没有用) 我试过“live”而不是“on”(没用)

这是实际代码:它在我的页脚中,我正在用 WP 运行它:

<footer id="colophon" role="contentinfo">
                <div id="footer"> <input type ="button" id="toggleAutoPlayBtn" value="PAUSE"/>     </div> 

<script>

$(document).on('click', '#toggleAutoPlayBtn', function(){
                $("p").text("clicked!");
});
   </script>
    </footer><!-- #colophon -->
</div><!-- #page -->

<?php wp_footer(); ?>
</body>
</html>

这是我的最终代码:

$(document).on('click', '#toggleAutoPlayBtn', function(){

    var autoStart = true;
    $('#new-royalslider-2').royalSlider({
        // other options...
        autoPlay: {
            enabled: autoStart
        }
    });

    $('#toggleAutoPlayBtn').click(function() {

            // optionally change button text, style e.t.c.
            if(autoStart) {
                $(this).html('play');
            } else {
                $(this).html('pause');
            }
            autoStart = !autoStart;

            $('#new-royalslider-2').royalSlider('toggleAutoPlay');
     });

});

不记得我现在是否尝试过其他任何方法,也许我错过了一些基本步骤?按钮在哪里重要吗?当然,我确实将代码包装在 .还有其他我可能忽略的非常基本的事情吗?

非常感谢您的回复。

【问题讨论】:

  • 你试过.toggleAutoPlayBtn而不是#toggleAutoPlayBtn吗?

标签: javascript jquery html button click


【解决方案1】:

对于类选择器,您需要使用 .,对于 id 选择器,您必须使用 #

 // this is for element with class as toggleAutoPlayBtn
 <input type ="button" class="toggleAutoPlayBtn" value="PAUSE"/> 

 $(document).on('click', '.toggleAutoPlayBtn', function(){
            $("p").text("clicked!");
 });

 // this is for element with id as toggleAutoPlayBtn
 <input type ="button" id="toggleAutoPlayBtn" value="PAUSE"/> 

 $(document).on('click', '#toggleAutoPlayBtn', function(){
            $("p").text("clicked!");
 });

编辑:

已添加Fiddle

【讨论】:

  • 感谢您的回复!对不起,我意识到我在尝试时粘贴了错误的按钮代码。我在那个地方有“id”。还是不行。
  • @user2502562 jsfiddle.net/fenderistic/P4SaM 在这里工作,您是否在控制台中看到任何错误?
  • 啊哈!控制台!是的,我确实这样做了:未捕获的 TypeError:对象 [object Object] 的属性“$”不是函数(索引):253(匿名函数)
  • 我会将代码发布在“回答您的问题”区域,因为它太短,无法发布代码。其实我会编辑我原来的问题
  • 你可以停在那里,听起来你根本没有引用 jquery。把这个放在&lt;head&gt; 部分&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"&gt; &lt;/script&gt; 然后告诉我们你是否还有问题。
【解决方案2】:

听起来问题更多出在脚本的基础上。 你的功能对我来说似乎很好。我想知道是否正在调用您的函数,或者是否正在加载/激活 jquery。

我建议将这些警报添加到您的脚本中:

jQuery(document).ready(function($) {

alert("jquery is working");

var autoStart = true;
$('#new-royalslider-2').royalSlider({
    // other options...
    autoPlay: {
        enabled: autoStart
    }
});

$('#toggleAutoPlayBtn').click(function() {
        // optionally change button text, style e.t.c.

           alert("function is working");

        if(autoStart) {
            $(this).html('play');
        } else {
            $(this).html('pause');
        }
        autoStart = !autoStart;

        $('#new-royalslider-2').royalSlider('toggleAutoPlay');
 });

});

如果这两个警报都有效,那么至少我们知道问题在于函数 itelf。如果没有,则检查是否实际加载了 jquery,或者为什么没有调用该函数。

还要检查是否正确加载了royalSlider 插件。问题也可能存在。如果 Javascript 有错误,那么整个脚本将无法运行。

【讨论】:

  • 我根本没有加载 js 脚本。警报有帮助。目前“函数不工作”出现控制台说:未捕获类型错误:对象[对象对象]没有方法'royalSlider'(索引):258(匿名函数)(索引):258 x.event.dispatch jquery.js: 5095 v.handle
  • 对于royalSlider插件,它已加载并显示所有图片。我想添加播放/暂停按钮。我的猜测也是我必须仔细检查我是否引用了正确的滑块 ID。
  • Uncaught TypeError: Object [object Object] has no method 'royalSlider' (index):258 (anonymous function) (index):258 x.event.dispatch jquery.js:5095 实际上表示对象不能使用 royalSlider 函数。如果您正确编写函数(正确名称),请仔细检查文档。我没有这个插件,因为它是一个商业插件,所以我不能帮你检查
  • 是的,我正在单独调查。如果我把那部分代码去掉,按钮文本重命名仍然不起作用
  • 即使你把不同的功能放在上面也不行吗?
猜你喜欢
  • 2013-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-11
  • 1970-01-01
  • 2019-06-18
  • 2019-05-04
  • 1970-01-01
相关资源
最近更新 更多