【问题标题】:fresh eyes please - theme issues - jquery / select请新鲜的眼睛 - 主题问题 - jquery / select
【发布时间】:2023-03-30 03:00:02
【问题描述】:

我正在尝试为用户提供游戏主题选项。以下是 .js 文件中的代码:

var clicks = 0; 
    $("#theme").on( "click", function(){
        clicks++;
        if(clicks == 1){
            var themeVal = $("#theme").val();
            var url = "url(../images/backgrounds/" + themeVal + ".jpg)";
            $("body").css('background-image', url);
            clicks = 0;
        }
    });

这里是 html 的简短版本:

 <select id="theme">
    <option value="" disabled="disabled" selected="selected">Select theme</option>
      <option value="tropical_beach">Beach</option>
      <option value="forest">Forest</option>
                     ....
</select>

这是我的文件结构:

在控制台中,我没有收到任何错误,并且所有值都按预期返回......但是当我从下拉列表中选择一个新值时,背景没有改变。我可能忽略了一些小东西。感谢您的眼球;)

更新:

var clicks = 0; 
    $("#theme").on( "change", function(){
        clicks++;
        if(clicks == 1){
            var themeVal = $("#theme").val();
            var url = "url('../images/backgrounds/" + themeVal + ".jpg')";
            $("body").css('background-image', url);
            clicks = 0;
        }
    });

【问题讨论】:

  • 第一件事。对select 使用change 事件而不是单击。接下来尝试使用带引号的url('...')
  • 当你点击select而不是当你选择一个选项时点击会触发。其余的看起来不错jsfiddle.net/2ttvf93r
  • 好的,所以我取出了所有的点击内容并将其更改为更改。现在看起来像这样: $("#theme").change (function(){ var themeVal = $("#theme").val(); var url = "url('../images/backgrounds/" + themeVal + ".jpg')"; });
  • 那么什么不起作用?有什么错误吗? ID 为#theme 的多个元素?这个下拉菜单是动态添加的吗?
  • 不,它在 html 中,我没有收到任何错误,它根本没有改变 :(

标签: jquery css drop-down-menu


【解决方案1】:

为什么不尝试使用更改事件?

$( "#theme" ).change(function() {

});

【讨论】:

  • 感谢您的回复 marhs08,我已经尝试过了,但它不起作用...不确定我是否正确,如果您想看看,我更新了我的问题
猜你喜欢
  • 2011-02-16
  • 1970-01-01
  • 2021-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 2014-04-30
相关资源
最近更新 更多