0

Jquery は、別のダイアログも開いているときに、ダイアログにあるラジオ ボタンの選択を解除しています。デバッグで実行すると、jquery ソースの犯人は次の行です。

if ( !eventHandle ) {
  elemData.handle = eventHandle = function() {
    // Handle the second event of a trigger and when
    // an event is called after a page has unloaded
    return typeof jQuery !== "undefined" && !jQuery.event.triggered ?
    jQuery.event.handle.apply( eventHandle.elem, arguments ) :
    undefined;//after this line executes selected radio button is lost.
  };
} 

これがなぜなのか誰か知っていますか?

これを引き起こしているものの簡略版:

$("#editYes").click(function(){//this radio is inside a dialog
  if($("#editsList").children().size()==0){
    $('#editDialogDiv').dialog('open');
    setDateHints();
    $('#editOpen').val("true");
  }
  //jquery code above runs here. Upto this point the radio remains selected
}); 

html は次のようなものです。

<div title="atitle" id="dialog1">
...
 Yes<input id="editYes" type="radio" value="true" name="edits"> <!-- click this to open second dialog, but its then deselected by jquery-->
 No<input id="editNo" type="radio" value="false" name="edits">
...
</div>
<div title="anothertitle" id="secondDialog">
...some content
</div>
4

1 に答える 1

1

問題はアクションが発生する順序であるため、changeではなくイベントを使用してみてください。click

クリックを使用しても、イベントが終了するまで変更は登録されません。ただし、イベントは新しいウィンドウに引き継がれ、戻る変更アクションが失われます。change を使用すると、変更が入力に登録され、アクションが処理されます。

于 2012-09-20T23:45:39.807 に答える