我在Internet Explorer 7/8下遇到以下问题:
我有一个弹出窗口,当用户鼠标悬停链接时会被激活.弹出窗口是一个简单的<div>包含一些数据.在这个<div>标签里面有一个<select>带有<option>s 的标签.我已将mouseover/mouseout事件附加到<div>,这样当光标在它上面时,此弹出窗口将保持打开状态.当您单击<select>然后将光标移动到任何<option>s上时,会出现问题.这会触发<div>标记的mouseout事件并分别关闭它.
如何防止在IE中关闭弹出窗口?
当用户在搜索输入字段(在webkit浏览器中)单击X以取消搜索或清除文本时,会触发什么事件?
有关重新设置按钮和其他自定义事件的信息,但不能使用此按钮.
当用户点击,日/周/月按钮时,我需要运行一些javascript代码来重新加载日历.有没有像dayButtonClicked()之类的回调?
发生BUG:
当我第一次加载日历.初始视图看起来很好,我最初加载一天.只要我加载另一个视图,如周.每个条目都是重复的,并显示两个数据源.如果我再次点击日和月之间的数据,则数据恢复正常.发生的事情是,在每天点击一次后首次加载新视图时,不会调用removeEventSource.你见过这件事吗?
<script type='text/javascript'>
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
var loadUrl = "menu_booking.php?ne=1&calsub=1";
var lastView;
var fullSource = "../fullcalendar/json-events.php?idc=<?= $sClient ?>&v=long";
var liteSource = "../fullcalendar/json-events.php?idc=<?= $sClient ?>";
$('#calendar').fullCalendar({
header: {
left: 'prev,next today',
center: 'title',
right: 'month,agendaWeek,agendaDay'
},
columnFormat: {
month: 'ddd',
week: 'ddd d/M',
day: 'dddd d/M'
},
defaultView: 'agendaDay',
firstDay: 1,
//editable: true,
selectable: true,
allDaySlot: false,
firstHour: 7,
viewDisplay: function(view) {
if …Run Code Online (Sandbox Code Playgroud) 我有一个包含多列的表.我希望单独选择每列的内容.当我开始选择第一列时,第二,第三......将自动被选中.当我选择一列时,我想让其他列不可选.
我尝试在元素上应用以下类,它在FF中运行良好.无论你从哪里开始选择,它都永远不可选择.
.unselectable {
user-select: none; /* CSS3 */
-moz-user-select: none;
-khtml-user-select: none;
}
Run Code Online (Sandbox Code Playgroud)
对于IE,我尝试了一个名为" unselectable="on"Internet Explorer"的属性,如果选择从外部开始,它仍然可以选择.我想阻止选择某些列,甚至选择从外部开始.
我尝试过使用onselectionstart和onmouseover,但是当选择在元素之外开始时,这些不会被触发.
我有什么希望吗?
提前致谢.
使用这个的主要区别是什么......
document.addEventListener('mousedown', function() {
// code
}, false);
Run Code Online (Sandbox Code Playgroud)
...还有这个?
document.onmousedown = function() {
// code
}
Run Code Online (Sandbox Code Playgroud)
会有任何不同的结果或任何原因吗?
我一直想知道......所以你有这样的代码:
$('#click-me');
Run Code Online (Sandbox Code Playgroud)
并附上以下内容:
$('#click-me').click(someFunction);
Run Code Online (Sandbox Code Playgroud)
"元数据"在哪里说:
"嘿"jQuery-object#click-me,"当你点击它时我会指向'someFunction'!"
我知道事件处理程序可能会被破坏,例如我的Backbone.js情况,因为我重新渲染整个页面,我的事件停止了触发,一路上破坏了一些背景函数/对象/视图.. (这是上下文至于为什么我问这个问题)
现在,我的问题是:
事件的"元数据"存储在哪里以及它们如何被销毁? 它们是否存储在将其绑定到函数的函数中?它们是否属于DOM'元数据'(如果有的话)本身?
我正在努力学习JavaScript的复杂性,因为我已经厌倦了bug.除此之外,我想知道是否应该留意可能会分离我的事件等的垃圾收集.来自C#,我会说DOM的JavaScript真的是......
(另外,作为附注,我如何访问这些事件并'调试'它们?firefox?chrome?)
UPDATE
用不同的词来说,将DOM元素连接到存储的某个事件的信息在哪里?DOM?对象?(或者...... jQuery是否映射它?JavaScript是否有'元数据'? 它围绕着这个上下文...
javascript jquery event-handling javascript-events backbone.js
就像标题所说,onstatechange如果pushState函数被调用,我希望能够执行不同的事件,而不是back函数.或者,如果go功能为负或正.
例:
如果History.pushState()或被History.go(1)调用,我想要statechange事件的回调forwardPushState
如果History.back()或被History.go(-1)调用,我想要statechange事件的回调backwardsPushState
javascript javascript-events browser-history history.js html5-history
TL; DR如何让这个不言自明的JSFiddle工作?
来自W3C:
当元素通过指点设备或通过Tab键导航失去焦点时,会发生模糊事件.此事件对以下元素有效:LABEL,INPUT,SELECT,TEXTAREA和BUTTON.
HTML的基本思路:
<form>
<label>
<input type="text" />
<a href="#">after focusing in input, there should be no blur when clicking here</a>
</label>
</form>
<a href="#">but blur should fire when clicking here</a>
Run Code Online (Sandbox Code Playgroud)
和JS:
$("form, label").on("blur", function() {
alert("you're not going to see this");
});
Run Code Online (Sandbox Code Playgroud)
它不起作用.一个更具说明性的例子就是这个JSFiddle.
我也尝试过focusout,使用这个JSFiddle,但是(大概是因为它从输入中冒出来),它总是会触发.
我可以通过这样的黑客来安装我需要的东西:https://stackoverflow.com/a/5049387/458614但我宁愿不必.
编辑:有很多相关的问题,我已经阅读了所有我能找到的,没有一个有用.有的谈设置tabindex=0上form或label元素.我已经尝试了各种排列,但它没有帮助.JSFiddle在这里.如果你把它放在form,blur事件就当您单击窗体的外线火力.但是,它并不适用于它的任何一个孩子:如果你点击它input …
摘要:
基本上尝试使用Excel VBA编辑网站.编辑似乎有效,但是当我使用保存按钮时,不保存任何内容.我知道保存按钮有效,如下所述.那么为什么我的更新数据不会在屏幕上显示?
故事:
我有这个代码,我已经使用Excel VBA工作了一段时间.它在Internet Explorer中打开一个网页,在我想要的地方导航,填写一大堆数据,所有数据都显示在屏幕上,使用各种方法,例如:
For Each objElement In objElementColl
ExtractedName = objElement.outerHTML
If InStr(ExtractedName, "NewPermit") > 0 Then
objElement.Checked = True
Run Code Online (Sandbox Code Playgroud)
和
Set DropDown = objHTML.getElementById("ProjectFile-AccreditedCertifierId")
DropDown.selectedIndex = 1
Run Code Online (Sandbox Code Playgroud)
要么
objHTML.getElementsByName(ElementName)(0).Value = ValueCheck
Run Code Online (Sandbox Code Playgroud)
所有这些都能很好地工作,并在屏幕上进行更改.然后我使用以下命令单击保存:
Set objElementColl = objHTML.getElementsByClassName("btn")
For Each objElement In objElementColl
ExtractedName = objElement.outerHTML
If InStr(ExtractedName, "click: save, enable:") > 0 Then
objElement.Click
ExtractedName = 1
Exit For
End If
Next
Run Code Online (Sandbox Code Playgroud)
哪个再次正常.问题是它实际上并没有从上面的3个代码中保存我的更改.我试过的是
a)暂停我的代码并手动点击保存(同一问题)
b)暂停我的代码,手动更改复选框并运行代码进行保存(保存手动更改,但不保存编码的代码)
c)暂停代码并手动更改框并手动保存(仅保存手动更改的框)
因此,从上面看,我的保存点击似乎有效,但由于某种原因,尽管使用代码可以明显更改框并填写,但可见和背景之间存在差距.
无论如何,一些HTML源代码.在检查我正在改变的元素时,Chrome会显示什么:
<fieldset>
<legend>Proposal</legend>
<div class="col-xs-12 col-sm-8 col-md-6">
<div class="row"> …Run Code Online (Sandbox Code Playgroud) 我知道这是最简单的问题,但无法得到正确的答案
<div class="col-12 col-md-4 col-lg-5 mt10-xs">
<p>Status</p>
<div class="form-group FL mr20 w100-xs">
<div class="rsi-custom-select">
<select class="form-control" id="statustab_{{ $row['placementkey'] }}" class="select2-selecting" onchange="listingByStatus(this,'{{ $row['placementkey'] }}')">
@foreach($placementStatus as $pl)
<option @if($pl['placement_status_id'] == $row['statusid'] ) selected @endif value="{{$pl['placement_status_key']}}">{{$pl['placement_status']}}</option>
@endforeach
</select>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
这是我的onchange功能.在此如何从我的选择框中获取先前的选定值
function listingByStatus(ths,key){
var thisSelect = $('#statustab_'+key).text();
var statusText = $( "#statustab_"+key+" option:selected" ).text();
var currentval = $( "#statustab_"+key+" option:selected" ).val();
}
Run Code Online (Sandbox Code Playgroud) javascript ×9
jquery ×4
html ×3
backbone.js ×1
blur ×1
excel ×1
fullcalendar ×1
history.js ×1
html5 ×1
knockout.js ×1
search ×1
vba ×1