【问题标题】:Jquery - Initialize Select Box after first useJquery - 首次使用后初始化选择框
【发布时间】:2012-12-07 14:50:51
【问题描述】:
  1. 页面加载时有一个隐藏的选择框。
  2. 我点击一个按钮
  3. 我将元素添加到此选择框,移动它并使其可见
  4. 我在上面应用了插件Chosen

这是由这个函数完成的

function moveHiddenSelect(idOffline, type, idMedia, mediaName){
    var $selToReplace  = $("#"+type+"_"+idOffline);
    var $selOriginal   = $("#originalSelect");
    $selToReplace.replaceWith($selOriginal);

    $.getScript('/lib/chosen/chosen.jquery.min.js', function(){
        $selOriginal.chosen(); //load plugin script and apply it on the select box
    });

    $selOriginal.css("width", "220px");
    $selOriginal.css("visibility", "visible");
}

当我单击一次按钮时没有问题,但是当我再次单击按钮时(第 2 步)没有任何反应..

【问题讨论】:

  • 因为在第二次单击时,您的 seltoreplace 和 seloriginal 是相同的元素。你期望会发生什么。如果你想在元素之间来回切换,你需要测试什么是实际元素,并根据它进行替换。
  • @SvenBieder 这听起来应该是一个答案,而不仅仅是一个评论。

标签: javascript jquery ajax jquery-chosen


【解决方案1】:

choice() 应该被调用一次,只是为了创建。 更新每个下拉列表的值后,您可以使用: $(DropdoenElement).trigger("liszt:updated");

function moveHiddenSelect(idOffline, type, idMedia, mediaName){
    var $selToReplace  = $("#"+type+"_"+idOffline);
    var $selOriginal   = $("#originalSelect");
    $selToReplace.replaceWith($selOriginal);

    selOriginal.chosen(); // Init the plugin

    $.getScript('/lib/chosen/chosen.jquery.min.js', function(){
       //load plugin script and apply it on the select box
       selOriginal.trigger("liszt:updated")
    });

    $selOriginal.css("width", "220px");
    $selOriginal.css("visibility", "visible");
}

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 2015-10-12
    • 2011-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多