Javascript 一旦改变设计,选择不';行不通

Javascript 一旦改变设计,选择不';行不通,javascript,jquery,Javascript,Jquery,我有个小问题,我在问是否有人能帮我 我有一个没有签名的选择,每个选项都有一个图标。这是一个非常酷的工作方式,但是如果我尝试为这个select创建或调用onchange方法,那么它就是不起作用。就像这个方法不存在一样!如果我删除了设计,那么一切都很好。再次,select(无设计)和onchange方法是朋友 这是我的代码,以防有人需要 这是选择: <select id="select" class="form-control"> <option value

我有个小问题,我在问是否有人能帮我

我有一个没有签名的选择,每个选项都有一个图标。这是一个非常酷的工作方式,但是如果我尝试为这个select创建或调用onchange方法,那么它就是不起作用。就像这个方法不存在一样!如果我删除了设计,那么一切都很好。再次,select(无设计)和onchange方法是朋友

这是我的代码,以防有人需要 这是选择:

<select id="select" class="form-control">
            <option value="de" data-class="deu" id="de" selected>1</option>
            <option value="en" data-class="eng" id="en">2</option>                     
</select>
您忘记键入“#”,还以字符串格式键入它

$("#select").change(function(){
    alert("Schön!");
});
对于select,“更改”不会以这种方式工作。加上这个

  $("#select").change(callFunction);//call function
  //define it
  function callFunction(){
   alert("Schön!");
 }

只需将触发器
change
更改为
selectmenuchange

$("#select").on('selectmenuchange',function(){
    alert("Schön!");
});

当使用jqueryUI小部件时-我想(不是100%确定)-更改事件需要与selectmenu事件一起添加

$.widget("custom.iconselectmenu", $.ui.selectmenu, {
    _renderItem: function (ul, item) {
        var li = $("<li>", {
            text: item.label
        });

        if (item.disabled) {
            li.addClass("ui-state-disabled");
        }

        $("<span>", {
            style: item.element.attr("data-style"),
                "class": "ui-icon " + item.element.attr("data-class")
        })
            .appendTo(li);

        return li.appendTo(ul);
    }

});

$("#select")
    .iconselectmenu({
    change: function (event, ui) {
        console.log('here')
    }
})
    .iconselectmenu("menuWidget")
    .addClass("ui-menu-icons customicons");
$.widget(“自定义.iconselectmenu”,$.ui.selectmenu{
_renderItem:功能(ul,项目){
变量li=$(“
  • ”{ 文本:item.label }); 如果(项目已禁用){ li.addClass(“ui状态禁用”); } $("", { 样式:item.element.attr(“数据样式”), “类”:“ui图标”+item.element.attr(“数据类”) }) .附件(李); 返回li.附录(ul); } }); $(“#选择”) .I选择菜单({ 更改:功能(事件、用户界面){ console.log('here') } }) .iconselectmenu(“菜单Widget”) .addClass(“ui菜单图标自定义图标”);

  • 为什么不在
    标记中调用该函数呢?您只需
    即可。控制台中是否有错误?您添加了哪些js引用(您正在使用的是jqueryUI小部件吗?@Taleeb是的,我也在使用boostrap,控制台中没有任何错误。如果这对youHi Hendry不起作用,一定要告诉我!我只是像这样为#select声明了一个别名:var select=$(“#select”),因为这个原因,我调用了$(select),而不是$(“#select”)Hi Abhishek!我尝试了您的方法,但仍然不起作用:(确保JQuery在此脚本之前加载,并将第一行代码放入
    $(document).ready(function(){//code here});
    块。之后,将函数声明在此块之外,但在相同的脚本标记中。
    $("#select").on('selectmenuchange',function(){
        alert("Schön!");
    });
    
    $.widget("custom.iconselectmenu", $.ui.selectmenu, {
        _renderItem: function (ul, item) {
            var li = $("<li>", {
                text: item.label
            });
    
            if (item.disabled) {
                li.addClass("ui-state-disabled");
            }
    
            $("<span>", {
                style: item.element.attr("data-style"),
                    "class": "ui-icon " + item.element.attr("data-class")
            })
                .appendTo(li);
    
            return li.appendTo(ul);
        }
    
    });
    
    $("#select")
        .iconselectmenu({
        change: function (event, ui) {
            console.log('here')
        }
    })
        .iconselectmenu("menuWidget")
        .addClass("ui-menu-icons customicons");