单击<a> element</a>时,对话框会移动焦点

时间:2014-06-18 22:37:49

标签: javascript jquery html ajax

编辑:我认为问题是由this造成的。

我有一个带有很长内容列表的jQuery对话框。我在某些行的左侧有一个标记。

窗口顶部有一个文本框,下面是行和行的内容。当您向下滚动(因此无法看到文本框)并单击位于每行上的锚标记时,它会将焦点更改为文本框,并且不允许您单击标记。它甚至不会为标签调用函数。

我知道这个功能有效,因为顶部的行(当文本框可见时)会触发正确的功能并正确地完成所有操作。

我不知道从哪一个开始,因为这是我看到的一个非常奇怪的问题。

我会附加一些示例,但窗口是通过Ajax加载的,所以它完全是动态的。

编辑:对话框:(因为它是通过另一个功能生成的,所以很难看)

 <div class="ui-dialog-content ui-widget-content" id="edit-dialog" >


  <p class="validateTips">
   All form fields are required.
  </p>






<form id="edit-form" action="<redacted>.aspx">


   <fieldset>


                    <legend>Edit:</legend>
                    <label for="perm">Permission Title</label>
                    <input name="perm" class="text ui-widget-content ui-corner-all" id="editpermname" type="text" />
                    <label for="hasdrop">Has Options</label>
                    <input name="hasdrop" class="text ui-widget-content ui-corner-all" id="edit-hasoptions" type="checkbox" />
                    <br />
                    <br />

<div id="edit-perm-options">
 <div id="div-9">
  Option 1: <input name="current-option-name-9" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-11">
  Option 2: <input name="current-option-name-11" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-13">
  Option 3: <input name="current-option-name-13" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-3">
  Option 4: <input name="current-option-name-3" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-4">
  Option 5: <input name="current-option-name-4" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-5">
  Option 6: <input name="current-option-name-5" type="text" value="Le<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-6">
  Option 7: <input name="current-option-name-6" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-7">
  Option 8: <input name="current-option-name-7" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-2">
  Option 9: <input name="current-option-name-2" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-12">
  Option 10: <input name="current-option-name-12" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-1">
  Option 11: <input name="current-option-name-1" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-8">
  Option 12: <input name="current-option-name-8" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-14">
  Option 13: <input name="current-option-name-14" type="text" value="test" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
 <div id="div-10">
  Option 14: <input name="current-option-name-10" type="text" value="<redacted>" /><a title="Delete option" href="javascript:void(0)"><span class="ui-icon ui-icon-closethick" style="margin-right: 5px; float: left;"></span></a><br /><br />
 </div>
</div>  
</fieldset>
</form>
</div

删除行的jQuery:

$("#edit-perm-options").on("click", "a", function () {
            $(this).parent().remove();
        });

1 个答案:

答案 0 :(得分:0)

仔细检查锚标记的href属性。尝试将值设置为“javascript:void(0);”而不是“#”以避免移动屏幕

<a href="javascript:void(0);" />something</a>