小编chr*_*ang的帖子

使用jQuery捕获和冒泡

我是jQuery的新手,我正在尝试理解捕获和冒泡的概念.

我已经阅读了很多文章,但大多数都描述了Javascript的事件传播.

让我们假设我们有以下HTML代码:

<div id="outter">

        outter

        <div id="inner">

                inner
        </div>

</div>
Run Code Online (Sandbox Code Playgroud)

捕获是我们沿着DOM元素走下去的阶段,冒泡就是我们上升的时候.

在Javascript中,您可以决定使用哪种方式(使用true或false参数):

element.addEventListener('click',doSomething,true) --> capture phase
element.addEventListener('click',doSomething,false)  --> bubble phase
Run Code Online (Sandbox Code Playgroud)

有没有类似的jQuery来表示除JavaScript方式之外的哪种方式?

jQuery也使用默认阶段吗?比如泡泡?

因为我使用以下代码来测试这个:

CSS

<style>

  div {
            border: 1px solid green;
            width: 200px;

       }

</style>
Run Code Online (Sandbox Code Playgroud)

jQuery的

<script>

    $(document).ready(function(){

        $('div').click(function(){
            $(this).animate({'width':'+=10px'},{duration: 3000})
        });

    });

</script>
Run Code Online (Sandbox Code Playgroud)

看来,当我点击outter div时,只有那个div动画到更大的div.当我点击内部div时,两个div都会生成更大的div.

我不知道我是不是错了,但是这个测试表明默认的浏览器传播方法是冒泡的.

如果我错了,请纠正我.

html javascript jquery event-bubbling propagation

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

使用 HTML/jQuery 下拉选择

我想构建一个下拉菜单,如果第一个选择数据属于特定类别,则将显示第二个选择。

正如您在下面看到的,第一个选择将是关于国家的。如果所选国家有州,则将显示第二个下拉选项,其中包含该国家的州。

1)是否有一个标签(在我的代码“xyz”中)我可以用它来区分“州”和“无州”类别中的国家?如果有,我如何读取“xyz”标签的值?

2)如果我使用:

<option class="no-state" value="Germany">Germany</option>
Run Code Online (Sandbox Code Playgroud)

然后使用 jQuery 读取它会给我德国西班牙的价值(这是正确的,但不是我想要的)

$('.no-state').val();
Run Code Online (Sandbox Code Playgroud)

HTML 部分

<div id="country">
 <select>
     <option xyz="no-state" value="Germany">Germany</option>
     <option xyz="state" value="USA">USA</option>
     <option xyz="no-state" value="Spain">Spain</option>
 </select>
</div>

<div id="state" style="display:none" >
 <select>
     <option value="Utah">Utah</option>
     <option value="New York">New York</option>
     <option value="California">California</option>
 </select>
</div>
Run Code Online (Sandbox Code Playgroud)

查询部分

$(document).ready(function(){
    $('#country').change(function() {

       if (the value of "xyz" tag is === 'no-state')  
       {
        $('div#state').hide();
       }
       else
      {
        $('div#state').show();
      }
    });
});
Run Code Online (Sandbox Code Playgroud)

我能做些什么来解决这个问题?

谢谢。

html javascript jquery

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

在 Laravel 中验证 CSV 文件

我正在尝试上传一个 CSV 文件,我想在执行其他任何操作之前对其进行验证。所以我在 FormRequest 中使用以下代码:

public function rules()
{
    return [
        'csvFile' => 'required|file|mimes:csv'
    ];
}
Run Code Online (Sandbox Code Playgroud)

我用于上传文件的表格是:

<form action="{{ route('uploadFile') }}" method="post" enctype="multipart/form-data">
    {{ csrf_field() }}
    <div class="form-group">
        <label for="fileToUpload">CSV File to upload</label>
        <input name="csvFile" type="file" class="form-control" id="fileToUpload" placeholder="Select file">
    </div>
    <button type="submit" class="btn btn-primary">Upload</button>
</form>
Run Code Online (Sandbox Code Playgroud)

问题是它不起作用。尝试使用 getMimeType() 检查我的 test.csv 文件的 MIME 类型,我得到:

"text/plain"
Run Code Online (Sandbox Code Playgroud)

但是如果我使用 getClientMimeType() 我得到:

"text/csv"
Run Code Online (Sandbox Code Playgroud)

从我读到的是:

客户端 MIME 类型 ( getClientMimeType() ) 是从上传文件的请求中提取的,因此不应将其视为安全值

对于受信任的 MIME 类型,请改用getMimeType()(根据文件内容猜测 MIME 类型)。

显然,我应该使用 getMimeType(),但它不起作用(至少在大多数情况下)。

我试图通过这样做来模仿这一点: …

php csv request laravel

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

Cloud Firestore和数据建模:从RDBMS到No-SQL

我正在构建一个使用Cloud Firestore(不是Firebase实时数据库)作为后端/数据库的iOS应用。

Google试图将新项目推向Cloud Firestore,老实说,拥有新项目的开发人员应选择使用Firestore(更好的查询,更容易的扩展等)。

我的问题与任何关系数据库开发人员在切换到无SQL数据库时一样:数据建模

我有一个非常简单的场景,我将首先解释如何使用MySQL配置它:

我想在表格视图中显示帖子列表,并且当用户单击一个帖子以展开并显示该帖子的更多详细信息时(假设是编写该帖子的用户)。听起来很简单。

关系数据库世界中,我将创建2个表:一个名为“ posts ”的表和一个名为“ users ”的表。在“ posts ”表中,我将具有一个指示用户的外键。问题解决了。

在此处输入图片说明

可怜的巴里,从来没有时间写帖子:(

使用这种方法,我可以轻松实现我所描述的内容,而且,如果用户更新了他/她的详细信息,则只需在一个地方进行更改即可完成。

现在让我们切换到Firestore。我想将RDBMS的表名视为Firestore的集合,并将表的内容/结构视为文档。

在我看来,我有2种可能的解决方案:

解决方案1:

遵循与RDBMS相同的逻辑:在posts集合内,每个文档应具有一个名为“ userId”的键,其值应为该用户的documentId。然后通过获取帖子,您将认识用户。第二次查询数据库将获取所有与用户相关的详细信息。

解决方案2:

数据重复:每个帖子都应该有一个映射(嵌套对象),该映射具有名为“ user”的键,并包含所需的任何用户值。这样,用户数据将被附加到它写的每个帖子上。

从RDBMS的规范化领域来看,这听起来很可怕,但是许多no-SQL文档都鼓励重复(?)。

  • 这是有效的方法吗?
  • 当用户需要更新他/她的电子邮件地址时会发生什么?您如何轻松地确保在所有位置更新电子邮件?

我在第二种解决方案中看到的唯一好处是,您可以在一个调用中同时获取帖子和用户数据。

对于这种简单但非常常见的情况,还有其他解决方案吗?

ps:对我轻松一点,第一次使用no-sql dev。

提前致谢。

rdbms nosql firebase google-cloud-firestore

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