1

「FilterBatch」選択入力要素を非表示にしようとしていますが、何も起こりません。ウィンドウを開いた後も、select html 入力が引き続き表示されます。また、クリック イベントから Hide() を呼び出そうとしました。サンプルコードは次のとおりです。

 var modalRerunConfirmDialog = $("<div id=\"modalRerunConfirmDialog\"/>").dialog({
    modal: true,
    autoOpen: false,
    title: "UDS Dashboard - Rerun jobs",
    resizable: false,
    draggable: false,
    dialogClass: "dialogOverride",
    buttons: {
        Yes: function () {
            $("#modalRerunConfirmDialog").dialog("close");
            //do something
        },
        No: function () {
            $(this).dialog("close");
        }
    },
    width: 550
});
var msg = Array();
msg[msg.length] = "<br><br><div style=\"font-size:2.0em\">Filter Your Selection</div>";
msg[msg.length] = "<br/><div><select id=\"FilterBatch\" style=\"width:500px;\"></select></div>";
modalRerunConfirmDialog.html(msg.join(" "));

//Bind the Select Box to the Multiselect jQuery plugin
$("#FilterBatch").multiselect({
    noneSelectedText: "Select Batch",
    selectedList: 1,
    multiple: false,
    click: function (event, ui) {
        FilterBatch_Change(ui.value); <= == I also tried to call.Hide() here !! !
    }
});

//populate the first dropdown box inside the modal window
$.each(arrayIDs, function (index, value) {

    $('#FilterBatch').append($('<option>', {
        value: value,
        text: value
    }));
});
$('#FilterBatch').multiselect("refresh");

//hide the select html element <=== this is not working !!!
$("#FilterBatch").hide();

modalRerunConfirmDialog.dialog("open");

ありがとうございました

4

2 に答える 2

1

openダイアログにイベントを追加できます。

$("#modalRerunConfirmDialog").on("dialogopen", function() {
    $("#FilterBatch").hide();
});

または、次のようにコードを少し最適化できます。

var msg = "<br><br><div style=\"font-size:2.0em\">Filter Your Selection</div> " +
            "<br/><div><select id=\"FilterBatch\" style=\"width:500px;\"></select></div>"; 

 var modalRerunConfirmDialog = $("<div>", {
    id: "modalRerunConfirmDialog",
    html: msg
}).dialog({
    modal: true,
    autoOpen: false,
    title: "UDS Dashboard - Rerun jobs",
    resizable: false,
    draggable: false,
    dialogClass: "dialogOverride",
    buttons: {
        Yes: function () {
            $("#modalRerunConfirmDialog").dialog("close");
            //do something
        },
        No: function () {
            $(this).dialog("close");
        }
    },
    width: 550,
    open: function(){
        $("#FilterBatch").hide();
    }
});
于 2013-06-13T21:42:05.947 に答える
0

それを行う最もクールな方法は、Knockout.jsを使用することです。

http://learn.knockoutjs.com/#/?tutorial=webmail

しかし、あなたはjQueryでそれを行うことができます!!!

JS

$("#idToShowOrHide").addClass('hide-me');

また

$("#idToShowOrHide").removeClass('hide-me');

CSS:

.hide-me{ display:none;}

.iAmOnTop
 { 
    z-index:9999;
    position:fixed;
    margin-left:50%
    margin-top:30%
 }
于 2013-06-13T21:38:27.670 に答える