标签: jquery-events

如何将jQuery事件处理程序附加到YouTube电影?

[编辑:对于那些已经回答的人 - 抱歉 - 在我睡眠不足的状态下,我忘记了这种特殊情况是YouTube电影,而不是JW FLV播放器.我可以看到有更多关于与YouTube电影互动的文档,所以我会追求这一点,但也欢迎更多信息]

我正在使用jQuery循环插件(http://malsup.com/jquery/cycle/)在正在轮换的div集合中使用嵌入式YouTube视频.

当我点击其中一部电影开始播放时,我希望循环停止,但我无法弄清楚如何将jQuery事件处理程序附加到播放器对象.

这是我当前代码的样子(你不能直接用jQuery选择一个对象标签,所以我选择父div,然后将object元素作为第一个子元素):

$("div.feature-player").children(":first").click(function(event) {
   $('#features').cycle('stop');
});
Run Code Online (Sandbox Code Playgroud)

但这并不能解决问题.我不是Flash的作者,所以我对ActionScript并不熟悉,之前我从未在JavaScript和Flash电影之间建立过互动.

谢谢你的帮助!

- 保罗

javascript flash jquery jquery-plugins jquery-events

3
推荐指数
1
解决办法
7708
查看次数

在高潮轴上单击事件

我希望能够将事件绑定到高图表中的轴,因此我可以在UI中为它们公开一些选项(轴间隔,文本格式,网格线等)

似乎不是在highcharts中这样做的方法.到目前为止,当我点击标签时,我可以让它进行我的出价,但是当我点击标签之间的空格时,我不能这样做.请参阅此处的小提琴,版本2.2.4:http://jsfiddle.net/gW4p6/174/

var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        marginRight: 80 // like left
    },
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },
    yAxis: [{
          lineWidth: 1,
          title: {
              text: 'Secondary Axis'
          }
    }],

    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]        
    }]
});

var clearSelection = function() { $('.highcharts-axis').css('stroke', ''); };

$('.highcharts-axis').click(function(event) {
    clearSelection();
    $(this).css('stroke', 'green');
    return false;
}); …
Run Code Online (Sandbox Code Playgroud)

jquery svg highcharts jquery-events

3
推荐指数
1
解决办法
7938
查看次数

如何确保脚本运行一次且仅运行一次

我正在编写一个小部件模板,它将包含在安装它的页面中。

人们可能会在一个页面中安装多个相同类型的小部件,因此我的模板可能会被包含多次。

现在我已经写了一些JavaScript来初始化小部件,你知道,点击和悬停。

我的问题是这些<script>被执行多次,例如,当我单击某物时,有界函数被执行多次。

解决这个问题的最佳方法是什么?

编辑:
顺便说一句,我正在使用Mako模板引擎,并且我尝试使用c变量来存储布尔标志,但似乎c每次都会被覆盖。

javascript python jquery mako jquery-events

3
推荐指数
1
解决办法
3022
查看次数

试图模拟标签点击

为什么这不起作用?标签位于.item父级内.我不想把它放在块元素之外,因为它不会有效.

所以我试图模拟标签点击:

$(".item").click(function(){
    $(this).find("label").click();
});
Run Code Online (Sandbox Code Playgroud)

编辑:它应该触发标签并检查收音机.

<script type="text/javascript">
    $(document).ready(function () {
        $(".item").click(function() {
            $(this).find("label").click();
        });
    }); 
</script>


<div class="item">
    <h4>Item</h4>
    <ul>                
        <li>Description</li>
    </ul>
     <div class="radio-container">
        <div class="radio-stack">
            <input type="radio" class="styled" id="item1">
        </div>
        <label for="item1">$100</label>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

jquery event-capturing jquery-events

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

jQuery Bootstrap - 在从输入中删除事件后更新typeahead

我有一个现有的事件重页,我试图添加先行支持.预先输出功能可以根据需要运行,除了它似乎只能一次附加到输入项目.

问题是,为简单起见,在某些操作之后,现有页面会删除附加到特定输入的所有事件 $('input').off(),然后根据新上下文重新附加新事件处理程序.

这导致了一个问题,即重新连接的先行功能似乎永远不会触发.(这里讨论了一个类似但不同的问题:使用post响应更新Bootstrap的typeahead数据源时遇到麻烦但是这里没有相关性,因为我可以更新源代码 - 我只是不能让类型提前触发无论如何我尝试了什么)

编辑:为了澄清 - 更改源(如在链接的问题中)不是问题 - 实际页面上的源是一个向服务器发出请求的js函数.问题是调用.off()似乎永久地破坏了类型,并且我不能删除调用.off()而不必重写大部分页面....下面的代码和jsfiddle只是我可以设计的最短代码来演示问题

这里有一个工作jsfiddle记录问题:http: //jsfiddle.net/hz5P3/8/

供将来参考,完整代码如下.简要说明:input.workstext_field只有一个先行声明,工作正常.该input.no_works有一个称为预输入功能,则已经$('.no_works').off()呼吁取消对这个输入的所有事件.此功能的重新连接类型无法完成.

有没有办法按预期第二次调用预先输入工作?

谢谢

HTML

<div class="container">
    <div class="hero-unit">
        <h1>Bootstrap jsFiddle Skeleton</h1>
        
         <p>this is a test typeahead that will work</p>         
        <input type="text" class="works" style="margin: 0 auto;">
        
        <p>this is a test typeahead that is updated and will not work</p>
        <input type="text" class="no_works" style="margin: 0 auto;">
    </div>
</diV>?
Run Code Online (Sandbox Code Playgroud)

使用Javascript

$('.no_works').typeahead({ …
Run Code Online (Sandbox Code Playgroud)

jquery typeahead twitter-bootstrap jquery-events

3
推荐指数
1
解决办法
5049
查看次数

将eventlistener添加到元素的最佳方法

我正在努力寻找悬挂事件的最有效方式.

让我们想象我们有这样的结构:

<ul>
    <li> 1st li </li>
    ...
    <li> 99999th li </li>
<ul>
Run Code Online (Sandbox Code Playgroud)

所以,我们有大约10000个li元素,我们想要为所有这些元素添加事件监听器,假设我们也可以使用jQuery.

首先想到的

<li onclick="console.log(this)" >...</li>
Run Code Online (Sandbox Code Playgroud)

这个解决方案的一个不好的部分 - 我们增加了html标记的大小,因为总是重复onlick

第二个念头

$('ul li').on('click', function(){ 
    console.log(this)
})
Run Code Online (Sandbox Code Playgroud)

当然这个解决方案不是一个选项,因为我们添加了10000个事件监听器,显然不利于性能.

第三个想法,事件授权

$('ul').on('click', 'li', function(){
    console.log(this)
})
Run Code Online (Sandbox Code Playgroud)

看起来非常好,对我来说,我们只使用一个事件监听器,而不是删除html标记,它可以正常工作.

所以,我问这个问题,因为有时我会查看不同网站的来源,其中很大一部分使用第一种方式.为什么?第一种方式有一些优势?

我想这可能是因为抓住动态添加的元素到页面更容易,但可能有些东西我不知道?

javascript performance jquery event-handling jquery-events

3
推荐指数
2
解决办法
2662
查看次数

Ajax刷新后如何绑定jQuery Datepicker?

我有一个非常适合我的 jQuery 日期选择器,除了当我通过 ajax 刷新内容时,我丢失了日期选择器。据我所知,我应该使用 jQueryon()将其绑定到输入,但我似乎无法找到将其绑定到的正确事件。

第一次有效,但在后续刷新时无效:

$("[id^=startPicker]").datetimepicker({
        showOn: "button",
        buttonImage: "/img/calendar_icon.png",
        buttonImageOnly: true,
        dateFormat: 'mm/dd/yy',
        timeFormat: 'hh:mm tt',
        stepMinute: 1,
        onClose: function (dateText, inst) {

            var selectedDate = $(this).datepicker("getDate"); //Date object

            $.ajax({
                url: "/url",
                dataType: "json",
                method: 'post',
                data: {
                    value: selectedDate.toDateString() + ' ' + selectedDate.toTimeString()
                },
                beforeSend: function () {
                    $("#loading").fadeIn();
                },
                success: function (data, textStatus) {
                    $("#content").html(data);
                },
                complete: function () {
                    $("#loading").fadeOut();
                }
            });
        }
    });
Run Code Online (Sandbox Code Playgroud)

第一次或后续刷新时不绑定:

$('#content').on('ready', "[id^=startPicker]", function () {
        $(this).datetimepicker({ …
Run Code Online (Sandbox Code Playgroud)

ajax jquery datepicker jquery-events

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

在CTRL + MOUSEWHEEL事件

我被要求为我们的页面网站实现ctrl + mousewheel事件,以便在用户放大或缩小时更改图像偏移.我发现这个旧答案使用javascript覆盖浏览器CTRL +(WHEEL)SCROLL,我试图做同样的事情.我为实现下载了jQuery Mouse Wheel插件,这是我的代码:

var isCtrl = false;  
       $(document).on('keydown keyup', function(e) {
            if (e.which === 17) {
                isCtrl = e.type === 'keydown' ? true : false;
            }
        }).on('mousewheel', function(e, delta) { // `delta` will be the distance that the page would have scrolled;
            // might be useful for increasing the SVG size, might not
            if (isCtrl) {
                e.preventDefault();
                alert('wheel');
            }
        });
Run Code Online (Sandbox Code Playgroud)

事件可以单独运行,但如果我按住CTRL按钮并转动鼠标,则轮子事件不会触发.有没有人有更好的解决方案,或者我做错了什么?感谢帮助

javascript jquery mouseevent keyboard-events jquery-events

3
推荐指数
2
解决办法
6389
查看次数

如何覆盖jquery中的点击事件

我正在使用 JavaScript 和 JQuery,有一个来自 jquery.js 的点击事件参考,

在这里,我试图覆盖点击事件,但没有发生。即使被覆盖仍然是整流罩旧的不是新的。有没有办法根据优先级加载事件?

javascript jquery jquery-events

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

jquery mouseenter on child div,尺寸大于父div

我有一个父div,高度= 100px,小于子div,高度= 200px.

当我在父div上附加jquery mouseenter时,即使我将指针悬停在child上,事件也会触发(将鼠标悬停在扩展父级高度的child部分上).

有谁能解释一下?

$(document).ready(function() {
		$(".parent").mouseover(function(e) {
			console.log(e.target);
		});
		$(".child").mouseover(function(e) {
			console.log(e.target);
		});
		$(".grandchild").mouseover(function(e) {
			console.log(e.target);
		});
	});
Run Code Online (Sandbox Code Playgroud)
.parent {
			background-color: green;
			height: 50px;
		}
		.child {
			background-color: red;
			height: 100px;
		}
		.grandchild {
			background-color: blue;
			height: 200px;
		}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent">
		<div class="child">
			<div class="grandchild">
				Test
			</div>
		</div>
	</div>
Run Code Online (Sandbox Code Playgroud)

- 更新 - 起初我不清楚究竟是什么问题.现在我想我明白了(我更新了代码).

假设我们有一个父div width=100pxheight=100px.
然后我们有一个孩子div width=200pxheight=200px(比父母更大的面积).
当我将鼠标悬停在子节点上(但尚未悬停在父节点上)时,浏览器会计算指针也在父节点上,尽管它没有.
因此,如果我在子项和父项上都有一个处理程序,它们将在我仅输入子div时触发.

谢谢.

html javascript css jquery jquery-events

3
推荐指数
1
解决办法
426
查看次数