标签: eventtrigger

只有当鼠标放在元素上时,jQuery才会激活鼠标悬停功能

我想.mouseover仅在鼠标在"触发"元素上放置预定持续时间(例如500毫秒)时才激活功能.

例如

$('.featured').mouseover(function () {
      $('.feat-txt').fadeOut("fast");
    });
Run Code Online (Sandbox Code Playgroud)

仅当鼠标位于.featured元素上至少500毫秒时,该函数才能启动,而.feat-txt可以是FadeOut.在该元素上使用简单的鼠标(仅快速移动)不会激活该功能.

有关如何做到这一点的任何建议?

jquery duration mouseover delay eventtrigger

5
推荐指数
1
解决办法
5172
查看次数

Jquery触发事件的复选框

我有一系列的复选框,我点击了jquery脚本.当用户点击复选框时,它会打开另一系列复选框并继续.现在我的问题是,当用户检查其中几个复选框时,移动到下一页并出于某种原因他/她回到复选框页面.然后我应该把他/她检查过的所有盒子打开.当dom加载时,我写了一个复选框测试

$(document).ready(function(){
   if($('.main').is(':checked')){
      $(this).trigger('click'); 
   }else{
      //do  nothing
   }

  $('.main').click(function(){
      if($('.main').is(':checked')){
       var val = $(this).attr('alt');
       $('#'+val).show();
   }else{
       var val = $(this).attr('alt');
       $('#'+val).hide();
   }
  });
});
Run Code Online (Sandbox Code Playgroud)

如上所述.Main是复选框类.点击它,我打开另一系列复选框.现在,我希望它们在再次访问页面时自动完成其复选框

checkbox jquery eventtrigger

5
推荐指数
1
解决办法
2333
查看次数

通过Interactivity.EventTrigger捕获自定义事件

我有一个简单的用户控件与事件:

using System.Windows;

namespace TriggersTest
{
    public partial class MyControl
    {
        public MyControl()
        {
            InitializeComponent();
        }

        public static readonly RoutedEvent ButtonPressedEvent =
            EventManager.RegisterRoutedEvent("ButtonPressed", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(MyControl));

        public event RoutedEventHandler ButtonPressed
        {
            add { AddHandler(ButtonPressedEvent, value); }
            remove { RemoveHandler(ButtonPressedEvent, value); }
        }

        private void OnButtonClick(object sender, RoutedEventArgs e)
        {
            RaiseEvent(new RoutedEventArgs { RoutedEvent = ButtonPressedEvent });
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望在另一个视图中捕获此事件:

<Window x:Class="TriggersTest.MainWindow"
        Name="Root"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
        xmlns:local="clr-namespace:TriggersTest"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <local:MyControl>
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="ButtonPressed">
                    <i:InvokeCommandAction Command="{Binding MyCommand, ElementName=Root}" /> …
Run Code Online (Sandbox Code Playgroud)

c# wpf eventtrigger wpf-controls

5
推荐指数
1
解决办法
2080
查看次数

如何在调试时轻松查看事件订阅的数量?

在调试时,我textBox1.TextChanged可以查看事件订阅的数量吗?如果是,那我该如何钻研呢?我需要知道在给定时间有多少订阅用于调试,因为它看起来像是多次触发事件,但我怀疑这个错误确实textBox1.TextChanged += handler是因为在应用程序中管理不当,所以订阅者太多了.

这是我认为正在发生的事情的简化版本.如果可能的话,我只想设置一个断点并计算"textBox1.TextChanged"的订阅数量:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    textBox1.TextChanged += textBox1_TextChanged;
    MessageBox.Show("asdf");
    textBox1.TextChanged -= textBox1_TextChanged;        
    textBox1.Text = DateTime.Now.ToString();
    textBox1.TextChanged += textBox1_TextChanged;
}
Run Code Online (Sandbox Code Playgroud)

这可能还是更复杂?

c# events eventtrigger subscription

5
推荐指数
2
解决办法
1281
查看次数

淡出从itemscontrol中删除项目

我有一个带有ItemsControl的WPF-View,它从ViewModel绑定ObservableCollection.现在我想逐渐淡出我从ObservableCollection中删除的项目.

视图模型:

public class ViewModel
{
    public ObservableCollection<string> Items { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

视图:

<Window x:Class="Sandbox.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"
    Name="mainWindow">
<Window.Resources>
    <DataTemplate x:Key="mytemplate">
        <DataTemplate.Resources>
            <Storyboard x:Key="OnUnloaded">
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)" Storyboard.TargetName="grid">
                    <EasingDoubleKeyFrame KeyTime="0" Value="1"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="-0"/>
                </DoubleAnimationUsingKeyFrames>
                <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[3].(TranslateTransform.Y)" Storyboard.TargetName="grid">
                    <EasingDoubleKeyFrame KeyTime="0" Value="0"/>
                    <EasingDoubleKeyFrame KeyTime="0:0:0.3" Value="-10"/>
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
        </DataTemplate.Resources>
        <Grid x:Name="grid" RenderTransformOrigin="0.5,0.5">
            <Grid.RenderTransform>
                <TransformGroup>
                    <ScaleTransform/>
                    <SkewTransform/>
                    <RotateTransform/>
                    <TranslateTransform/>
                </TransformGroup>
            </Grid.RenderTransform>
            <TextBox Text="{Binding Mode=OneWay}"/>
        </Grid>
        <DataTemplate.Triggers>
            <EventTrigger RoutedEvent="FrameworkElement.Unloaded">
                <BeginStoryboard Storyboard="{StaticResource OnUnloaded}"/>
            </EventTrigger>
        </DataTemplate.Triggers>
    </DataTemplate>
</Window.Resources>
<StackPanel>
    <ItemsControl Grid.Row="1" ItemsSource="{Binding …
Run Code Online (Sandbox Code Playgroud)

wpf datatemplate eventtrigger

4
推荐指数
1
解决办法
2289
查看次数

以编程方式调用WPF TargetedTriggerAction

我有来自第三方库的TargetedTriggerAction,它想要调用/调用而不将其附加到按钮.我没有问题让它与按钮一起工作,但我想这样做是为了响应一些非UI事件.

这是动作的类声明:

 public class MeasureAction : TargetedTriggerAction<Map>
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止的设置代码:

    var measure = new MeasureAction();
    measure.TargetObject = _mapControl;
    measure.MeasureMode = MeasureAction.Mode.Polyline;
    measure.MapUnits = DistanceUnit.Miles;
Run Code Online (Sandbox Code Playgroud)

我希望能够做这样的事情,但我知道Invoke受到保护:

measure.Invoke();
Run Code Online (Sandbox Code Playgroud)

c# wpf action eventtrigger routed-events

4
推荐指数
1
解决办法
2410
查看次数

基于可见性停止/开始故事板动画

我有一个当前在Control加载a 时开始的动画(动画本质上是一个等待的微调器,应用于空的ContentControl)。

然而,动画会不断旋转占用资源。我想要的是根据动画控件是否可见来启动/停止动画,这可能吗?

<Canvas.Triggers>
    <EventTrigger RoutedEvent="ContentControl.Loaded">
        <BeginStoryboard>
            <Storyboard>
                <DoubleAnimation
                Storyboard.TargetName="SpinnerRotate"
                Storyboard.TargetProperty="Angle"
                From="0" To="360" Duration="0:0:01.3"
                RepeatBehavior="Forever" />
            </Storyboard>
        </BeginStoryboard>
    </EventTrigger>
</Canvas.Triggers>
Run Code Online (Sandbox Code Playgroud)

我必须同时为 Silverlight 和 WPF 工作。

silverlight wpf animation eventtrigger

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

统一 - 检测已经联系的游戏对象

想象一下,我有2个gameobjects,红色的盘子和苹果.当比赛开始时(这是至关重要的),苹果已经在红盘上(2 gameobjects已经接触过).所以如果我移动红板,那么苹果就会成为红板的"父母"并跟随变换.

我怎么能这样做Unity3D?我看代码TriggerCollision,他们都需要至少一个阶段是1移动gameobject碰撞其他的,我没有那个.

知道怎么处理这个吗?

eventtrigger collision unity-game-engine

4
推荐指数
1
解决办法
6085
查看次数

使用jQuery以编程方式"勾选"复选框

我想触发一个以编程方式检查的复选框.例如:

$(function(){
    //create a trigger that if a checkbox changes, eg is clicked/change show an alert
    $("#idCheckbox").on("change", function(){
        if($(this).is(':checked')){
            alert("Is checked!");
        }
    });

    //onload put it checked
    $("#idCheckbox").attr("checked", "checked");
});
Run Code Online (Sandbox Code Playgroud)

"问题"是,如果我通过javascript检查加载复选框,则不会触发on()方法,并且不会显示警报.

上面的代码是一个例子,实际上检查复选框的脚本不是我的,我无法修改它.

我正在使用jQuery 1.8.0

有什么建议吗?

提前致谢.

javascript checkbox jquery eventtrigger

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

jQuery有条件地删除触发器

我想知道Javascript或jQuery是否有办法删除事件监听器.假设我想创建一个我只想触发一次的函数,例如假设我想要一个按钮来显示文档中的一些隐藏元素,我会创建这个函数(假设隐藏元素有一个hidden隐藏的类他们):

jQuery('#toggler').click(function() {
    console.log('Hidden elements are now shown');
    jQuery('.hidden').removeClass('hidden');
});
Run Code Online (Sandbox Code Playgroud)

很简单吧?现在,我的实际问题进来了,我不希望jquery每次单击按钮时一次又一次地运行该函数,因为元素已经显示,所以有一个干净的方法吗?所以,在这个例子中多次点击切换器之后,我想只得到一个控制台消息.

我可以做jQuery(this).unbind('click'),但这会导致删除所有触发器,我只想删除当前触发器.

当我面对这样的场景时,我通常会做的就是解决它(这很丑陋,实际上并不会阻止代码执行,但只处理代码的结果):

var toggler_clicked = false;
jQuery('#toggler').click(function() {
    if(toggler_clicked) return;

    toggler_clicked = true;
    console.log('Hidden elements are now shown');
    jQuery('.hidden').removeClass('hidden');
});
Run Code Online (Sandbox Code Playgroud)

另外我不想使用jQuery one,因为当我需要有条件地删除触发器时我会遇到同样的问题,所以如果你能帮忙请给我一个动态的答案.

提前致谢 !

javascript jquery eventtrigger

4
推荐指数
1
解决办法
1780
查看次数