标签: javascript-events

Internet Explorer和<select>标记问题

我在Internet Explorer 7/8下遇到以下问题:

我有一个弹出窗口,当用户鼠标悬停链接时会被激活.弹出窗口是一个简单的<div>包含一些数据.在这个<div>标签里面有一个<select>带有<option>s 的标签.我已将mouseover/mouseout事件附加到<div>,这样当光标在它上面时,此弹出窗口将保持打开状态.当您单击<select>然后将光标移动到任何<option>s上时,会出现问题.这会触发<div>标记的mouseout事件并分别关闭它.

如何防止在IE中关闭弹出窗口?

javascript jquery internet-explorer javascript-events

8
推荐指数
1
解决办法
3849
查看次数

html5搜索输入事件

当用户在搜索输入字段(在webkit浏览器中)单击X以取消搜索或清除文本时,会触发什么事件?

有关重新设置按钮和其他自定义事件的信息,但不能使用此按钮.

search html5 javascript-events

8
推荐指数
1
解决办法
7166
查看次数

月,星期,星期标题栏按钮点击回调?

当用户点击,日/周/月按钮时,我需要运行一些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)

html javascript javascript-events fullcalendar

8
推荐指数
1
解决办法
1万
查看次数

HTML表格中的不可选列

我有一个包含多列的表.我希望单独选择每列的内容.当我开始选择第一列时,第二,第三......将自动被选中.当我选择一列时,我想让其他列不可选.

我尝试在元素上应用以下类,它在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,但是当选择在元素之外开始时,这些不会被触发.

我有什么希望吗?

提前致谢.

html javascript javascript-events

8
推荐指数
1
解决办法
1097
查看次数

使用addEventListener有什么区别?

使用这个的主要区别是什么......

document.addEventListener('mousedown', function() {
    // code
}, false);
Run Code Online (Sandbox Code Playgroud)

...还有这个?

document.onmousedown = function() {
    // code
}
Run Code Online (Sandbox Code Playgroud)


会有任何不同的结果或任何原因吗?

javascript javascript-events

8
推荐指数
1
解决办法
1085
查看次数

附加事件处理程序的元数据存储在哪里?在"DOM",对象,还是......?

我一直想知道......所以你有这样的代码:

$('#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

8
推荐指数
2
解决办法
1524
查看次数

有没有办法告诉国家与history.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

8
推荐指数
1
解决办法
1825
查看次数

模糊事件未在<label>上触发 - 找不到处理hide-on-blur <input>文本字段的解决方法

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 …

html javascript jquery blur javascript-events

8
推荐指数
1
解决办法
1766
查看次数

Excel VBA使用Knockout控制网页; 似乎工作; 但什么都没有得救

摘要:

基本上尝试使用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)

javascript excel vba javascript-events knockout.js

8
推荐指数
1
解决办法
640
查看次数

如何在onchange之前从下拉列表中获取先前选定的值

我知道这是最简单的问题,但无法得到正确的答案

<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 jquery javascript-events

8
推荐指数
2
解决办法
4034
查看次数