2

我无法在附加行中显示“True”、“False”、“Yes”和“No”按钮。

我在这里有一个应用程序:应用程序

请按照以下步骤使用应用程序:

1.当你打开应用程序时,你会看到一个绿色的加号按钮,点击这个按钮,会出现一个模态窗口,里面有一个搜索栏。

2. 在搜索栏中输入以下“橙色”(不带双引号),然后提交搜索。

3. 在“问题”列下,将出现与搜索中的术语匹配的行。您将在“答案”列下看到答案为“真”。请单击“添加”按钮添加行中的内容。

4. 您将在右侧看到它显示“True”和“False”按钮,并且“True”按钮以绿色突出显示。这可以。

但下面是问题发生的地方:

1. 单击“添加问题”按钮,这将在下方添加一行,并从上方复制控件。

2. 现在在您刚刚添加的行中,您将看到另一个绿色加号按钮,单击此按钮并再次执行第 2 步和第 3 步。

您可以在附加的行中看到,它根本不显示“True”或“False”按钮。所以我的问题是,在附加的行中,当我从模式窗口添加一个问题时,如果答案是“真”或“假”,它为什么不显示“真”或“假”按钮?“是”和“否”按钮也会发生这种情况。

整个代码显示在此处的 jsfiddle 中(打开模式窗口的函数位于小提琴的 javascript 部分的底部):

http://jsfiddle.net/WZKrP/6/

代码:

function plusbutton(plus_id) {
    // Set global info
    plusbutton_clicked = plus_id;
    // Display an external page using an iframe
    var src = "previousquestions.php";
    $.modal('<iframe src="' + src + '" style="border:0;width:100%;height:100%;">');
    return false;
}

    function addwindow(numberAnswer, gridValues, btn) {

        if (btn == "True" || btn == "False" || btn == "Yes" || btn == "No") {
            var answers = '#answer' + btn;
            var answersrow = '#answer' + btn + 'Row';
        } else {
            var answers = $.map(btn.split(''), function(chr) {
                return "#answer" + chr;
            }).join(', ');
            var answersrow = $.map(btn.split(''), function(chr) {
                return "#answer" + chr + "Row";
            }).join(', ');
        }

        var myNumbers = {};
        myNumbers["True or False"] = "True or False";
        myNumbers["Yes or No"] = "Yes or No";

        gridValues = myNumbers[gridValues];

        if ($(plusbutton_clicked).attr('id') == 'mainPlusbutton') {



            if (gridValues == "True or False") {
                $('#btn' + 'TrueorFalse').trigger('click');

            }

            else if (gridValues == "Yes or No") {
                $('#btn' + 'YesorNo').trigger('click');
            }



            $('#answerSection').find('.answerBtnsOn').trigger('click');
            $(answers).trigger('click');

        } else {

            if (gridValues == "True or False") {
                $(plusbutton_clicked).closest('tr').find('input.gridTxtRow').val(gridValues).parent().append($('.optionTypeTbl'));
                $('#btn' + 'TrueorFalse').trigger('click');

            }

            else if (gridValues == "Yes or No") {
                $(plusbutton_clicked).closest('tr').find('input.gridTxtRow').val(gridValues).parent().append($('.optionTypeTbl'));
                $('#btn' + 'YesorNo').trigger('click');
            }


        }

        $('#btn' + gridValues).trigger('click');
        $(plusbutton_clicked).closest('tr').find('.answerBtnsOn').trigger('click');
        $(plusbutton_clicked).closest('tr').find(answersrow).trigger('click');


        $.modal.close();
        return false;
    }​

顶部加号按钮的 HTML:

<table id="question">
<tr>
<td colspan="2">
<a onclick="return plusbutton();">
<img src="Images/plussign.jpg" width="30" height="30" alt="Look Up Previous Question" class="plusimage" id="mainPlusbutton" name="plusbuttonrow"/>
</a>
<span id="plussignmsg">(Click Plus Sign to look up Previous Questions)</span>
</td>
</tr>
</table>

下面是 jquery 代码,它为每一行附加一个加号按钮:

$('.plusimage').each( function() {

    var $this = $(this);
var $plusimagerow = $("<a onclick='return plusbutton(this);'><img src='Images/plussign.jpg' width='30' height='30' alt='Look Up Previous Question' class='imageplus'/></a>").attr('name',$this.attr('name')+"[]")
               .attr('value',$this.val());

$plusrow.append($plusimagerow);

});
4

2 回答 2

2

每个按钮的内联样式定义存在问题(<input class='answerBtnsRow answers' type='button' style='**display:none**' ...>每当您应用 CSS 类 answerBtnsOn 时,都没有指定将显示更改回内联、块等的指令。您可以在 answerBtnsOn 类中添加一行,但使用 !important 指令,这样它就会覆盖由您的 jQuery 代码定义的内联样式:display:inline !important.

另一种方法是利用 jQuery(例如:)$('#element').css('display', '');来更改或删除 jQuery 脚本中的内联样式,它会将按钮设置为不可见。

我肯定会更新 answrBtnsOn 和 answerBtnsOff 类,避免任何内联样式定义。

希望这会有所帮助....如果您有任何问题或疑虑,请告诉我们。

于 2012-10-15T15:51:40.580 回答
0

听着,我不认为我理解你。这是你想做的吗? 在此处输入图像描述

于 2012-10-15T15:52:55.930 回答