0

2つの異なるボタンがあります。どちらもクリックするとJQuery関数「ShowCommentBox」が実行されますが、2番目のボタンがクリックされると、「SHowCommentBox」に沿って追加のJQuery関数をロードします。追加の関数は画面に追加のオプションを許可します。

<input id="SubmitCommentsForBOQ" type="button" value="Comments" onclick="ShowCommentBox('<%: item.ItemCode %>'')" />

上は私も実行したい2番目のボタンです

 $("#SubmitCommentsForTwo").click(function () {
        $("#hiddenBox").show();
    });

、これにより追加機能が表示されます...どうすればこれを実行できますか?

返信ありがとうございます

以下は元のJQueryです:ダイアログボックスをロードします

function ShowCommentBox(itemIdentifier, labourOrPlant, desc) {
        id = itemIdentifier;
        LabouringOrPlanting = labourOrPlant;
        description = desc;
        Function.DisplayBox(itemIdentifier);
        $("#LabourOrPlantDialog").dialog({ modal: true }); 
    }

と私の他のコード:

    <div id="LabourOrPlantDialog" title="Comments"  style="display:none;">
 <table class="detailstable FadeOutOnEdit">
     <tr>
        <th>Item</th>
     </tr>
     <tr>
         <td id="Item"></td>
     </tr>
 </table>    
 <br />

       <textarea id="ExistingComments" type="text" runat="server" rows="7" cols="30"
        maxlength="2000"> </textarea> 
       <input id="SubmitComment" type="button" value="Submit"
            onclick="SubmitButton()" />  

<br />

<div id="hiddenBox">
<input type="text" name="BoqTextBox" id="BoqTextBox" value="7.15" />
</div>
</div>
4

1 に答える 1

1

動作をマークアップから分離するのが最善です。data-HTML属性を使用して、両方の問題を解決できます。

まず、データをHTMLに埋め込みます。

<input id="SubmitCommentsForBOQ" type="button" value="Comments"
    data-item-code="<%: item.ItemCode %>" />

の代わりにonclick、jQueryのみを使用してイベントハンドラーをバインドし、必要なすべてのアクションを一度に実行します。

$("#SubmitCommentsForBOQ").click(function () {
    var itemCode = $(this).data('itemCode');
    ShowCommentBox(itemCode);
});

$("#SubmitCommentsForTwo").click(function () {
    $("#hiddenBox").show();
    var itemCode = $(this).data('itemCode');
    ShowCommentBox(itemCode);
});

複数のハンドラーはバインドされた順序で実行されるため、次のようにすることもできます。

// happens first, but only for this specific button
$("#SubmitCommentsForTwo").click(function () {
    $("#hiddenBox").show();
});

// happens for all buttons
$("input[data-item-code]").click(function () {
    var itemCode = $(this).data('itemCode');
    ShowCommentBox(itemCode);
});
于 2013-03-24T21:11:55.647 に答える